为了账号安全,请及时绑定邮箱和手机立即绑定

一个AngularJS控制器可以调用另一个控制器吗?

一个AngularJS控制器可以调用另一个控制器吗?

一个AngularJS控制器可以调用另一个控制器吗?有可能让一个控制器使用另一个控制器吗?例如:此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以及获取服务。
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

控制器之间的通信方式有多种。

最好的办法可能是共享一项服务:

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);}

在这两种情况下,您也可以与任何指令通信。


查看完整回答
反对 回复 2019-06-10
  • 3 回答
  • 0 关注
  • 1459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信