angularjs – 一个控制器可以调用另一个?
发布时间:2020-12-17 09:23:05 所属栏目:安全 来源:网络整理
导读:有可能有一个控制器使用另一个? 例如: 这个HTML文档只是在MessageCtrl.js文件中打印由MessageCtrl控制器发送的消息。 html xmlns:ng="http://angularjs.org/"head meta charset="utf-8" / titleInter Controller Communication/title/headbody div ng:cont
|
有可能有一个控制器使用另一个?
例如: 这个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和访问服务。
有多种方式如何在控制器之间通信。
最好的一个可能是共享服务: 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);
}
在这两种情况下,您都可以与任何指令进行通信。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
