Angularjs ng单击执行属于不同控制器的2个方法

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

我有一个名为PostControllerCommentController的控制器
后置控制器具有功能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伙计你的回答救了我一天。