有可能有一个控制器使用另一个?
例如:
这个HTML文档只是在MessageCtrl.js文件中打印由MessageCtrl控制器发送的消息。
<html xmlns:ng="http://angularjs.org/"> <head> <Meta charset="utf-8" /> <title>Inter Controller Communication</title> </head> <body> <div ng:controller="MessageCtrl"> <p>{{message}}</p> </div> <!-- Angular Scripts --> <script src="http://code.angularjs.org/angular-0.9.19.js" ng:autobind></script> <script src="js/messageCtrl.js" type="text/javascript"></script> </body> </html>
function MessageCtrl() { this.message = function() { return "The current date is: " + new Date().toString(); }; }
它只打印当前日期;
如果我要添加另一个控制器,DateCtrl将特定格式的日期交给MessageCtrl,那么如何做呢? DI框架似乎关心XmlHttpRequests和访问服务。
有多种方式如何在控制器之间通信。
原文链接:https://www.f2er.com/angularjs/147498.html最好的一个可能是共享服务:
function FirstController(someDataService) { // use the data service,bind to template... // or call methods on someDataService to send a request to server } function SecondController(someDataService) { // has a reference to the same instance of the service // so if the service updates state for example,this controller knows about it }
另一种方式是在范围上发出事件:
function FirstController($scope) { $scope.$on('someEvent',function(event,args) {}); // another controller or even directive } function SecondController($scope) { $scope.$emit('someEvent',args); }
在这两种情况下,您都可以与任何指令进行通信。