一个控制器可以使用另一个控制器吗?
例如:
该HTML文档仅MessageCtrl
在messageCtrl.js
文件中打印由控制器传递的消息。
<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: //gist.github.com/3384419中实现它的方式。
基本思想-将pub-sub / event总线注册为服务。然后将事件总线注入您需要订阅或发布事件/主题的地方。