【发布时间】:2016-12-16 07:34:49
【问题描述】:
我是 AngularJS 的新手。
我正在尝试从另一个控制器调用函数。
我发现有很多方法可以做到这一点。
1) 共享服务
2) 使用事件
这是我已经签出的链接。
Can one controller call another
How do I inject a controller into another controller in AngularJS
我认为使用事件是更好的方法。除此之外,我认为当我们使用 $rootscope 时,它不会破坏事件引用吗?
var myModule = angular.module('myapp', []);
myModule.controller('otherController', function($scope) {
$scope.$on('ShowDialog', function(event) {
alert("hello");
});
});
myModule.controller('myController', function($scope) {
$scope.OnClick = function() {
alert("Done");
$scope.$emit('ShowDialog');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div style="padding: 0 5px; height: 100%" ng-app="myapp">
<div style="padding: 0 5px; height: 100%" ng-controller="myController">
<input type="button" ng-click="OnClick()" value="Say Hello!" />
</div>
</div>
请让我知道我缺少什么?最好的方法是什么?
【问题讨论】:
-
服务是最首选的方式...谷歌你会得到很多解释原因的链接
-
供您参考,因为提出的问题类似:stackoverflow.com/questions/29467339/…
标签: angularjs