更新时间:2021-12-25 13:12:55
我想给大家解释一下谈角控制器通信的四种方式。相信朋友们也应该很关心这个话题。现在,让我们为我的朋友们谈谈四种谈论角度控制器通信的方法。边肖还收集了关于四种谈论角度控制器通信方式的相关信息。我希望你看到后会喜欢。
本文介绍了角度控制器通信的四种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
[相关建议:《angular教程》]
首先,总结角度控制器通信的四种方式:
范围继承。
通过$scope广播事件。
事件发送器模块。
服务。
1.范围继承
Subscopes可以访问在其祖先作用域中声明的变量和函数。
分区控制器='控制器1 '
分区控制器='控制器2 '
这会打印出' 42 ' : { {答案}}
/div
/div
m.controller('Controller1 ',函数($ scope){ 0
$ scope.answer=42
});
m.controller('Controller2 ',函数($scope) {)
console . log($ scope . answer);
});2.通过$scope广播事件
$emit调用可以冒泡到作用域的顶部,$broadcast将传播到后代作用域,$on可以注册侦听器。
分区控制器='控制器1 '
分区控制器='控制器2 '
/div
/div
m.controller('Controller1 ',函数($ scope){ 0
$scope。$on('ping ',function(){ 0
console . log(' pong ');
});
$scope。$ broadcast(' broadcast ');
});
m.controller('Controller2 ',函数($scope) {)
$scope。$ emit(' ping ');
$scope。$on('broadcast ',function(){ 0
console.log('广播');
});
});3.事件发射器模块事件发射器
事件发射器模块像范围发射器一样工作,它们之间有三个主要区别:
事件发射器与范围无关,因此在无法访问范围的服务中使用它是理想的。
要使用的函数被命名。on(),发出()。
没有对应的$broadcast()函数。
脚本类型=' text/JavaScript ' src=' angular . js '/脚本
脚本类型=' text/JavaScript ' src=' event-emitter . js '/脚本
脚本类型=“文本/javascript”
var app=angular.module('app ',[]);
app.factory('userService ',函数($timeout,$ window){ 0
var emitter=$ window . emitter();
var用户={ };
//模拟http错误
$timeout(函数(){ 0
user.emit('错误','无法连接到服务器');
}, 1000);
返回用户;
});
app.factory('profileService ',function(UserServiCe){ 0
var ret={
用户:用户服务,
};
userService.on('错误',函数(){ 0
console . log(' get error ');
});
返回ret
});
/script4。最常用的沟通方式是服务。
因为服务是单例的,所以在任何组件中更改服务的值都会影响其他组件。用法非常简单,只需将服务列为依赖项,如上面的代码所示。
有关编程的更多信息,请访问:编程教学!以上是角度控制器通讯的四种方式的详细说明。请多关注php中文网站的其他相关文章!
来源:php中文网站