Angularjs ng单击执行属于不同控制器的2个方法
我有一个名为PostController和CommentController的控制器Angularjs ng单击执行属于不同控制器的2个方法,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-click,angular-services,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Click,Angular Services,我有一个名为PostController和CommentController的控制器 后置控制器具有功能showPost CommentController具有功能showComment 我想在单击按钮时执行这两个功能 <button href="#" ng-click="showPost();showComment()" class="btn">show</button> show 如何在不指定嵌套控制器概念的情况下实现这一点您可以使用service/factory
后置控制器具有功能showPost
CommentController具有功能showComment
我想在单击按钮时执行这两个功能
<button href="#" ng-click="showPost();showComment()" class="btn">show</button>
show
如何在不指定嵌套控制器概念的情况下实现这一点您可以使用service/factory实现这一点。下面是它应该如何工作的简单示例: JS
var myApp = angular.module('myApp', []);
function CommentController($scope, myStorage) {
$scope.myStorage = myStorage;
$scope.showMe = function(){
myStorage.setIndex(3);
}
}
function PostController($scope, myStorage) {
$scope.myStorage = myStorage;
}
myApp.factory('myStorage', function () {
var currentBusinessIndex = 0;
return {
getIndex: function () {
return currentBusinessIndex;
},
setIndex: function (index) {
currentBusinessIndex = index;
}
}
});
HTML
<div ng-controller="CommentController">
<button ng-click="showMe();">press me</button>
<pre>{{myStorage.getIndex()}}</pre>
</div>
<div ng-controller="PostController">
<pre>{{myStorage.getIndex()}}</pre>
</div>
按我
{{myStorage.getIndex()}}
{{myStorage.getIndex()}}
演示
此外,您可以使用
$watch
观看服务数据,以触发任何数据更改嵌套控制器的概念是什么?您自己是否尝试过?查看egghead的视频以了解“控制器为”概念:我们可以在另一个控制器@Davin tryonyahh中定义一个控制器,我试图将rails与angularjs集成。。。函数应该一次执行,但它不工作@chernivThanx伙计你的回答救了我一天。