我试图通过ng-click更改工厂中的值,并让应用程序中的其他控制器反映该更改。

厂:

app.factory('data', function() {
  function changeMe(inc) {
      return 1;
  }
  return {
        changeMe: changeMe
    };
});


控制器:

app.controller('MainCtrl', function($scope, data) {
  $scope.change = data.changeMe();

  // I want this to change data.changeMe so that the secCtrl will reflect
  // the change as well.
  $scope.addOne = function(){
    $scope.change = data.changeMe() + 1;
  }
});

app.controller('secCtrl', function($scope, data) {
  $scope.change = data.changeMe();
})


HTML:

<div ng-controller="MainCtrl">
    <p ng-click=addOne()>{{change}}!</p>
  </div>

  <div ng-controller="secCtrl">
    <p>{{change}}
  </div>


我如何才能使ng-click也更改secCtrl中的值。我希望它们都在HTML中得到更新。

上面的一个小问题:
http://plnkr.co/edit/4LsWMzwapgYpcz3hzI72?p=preview

最佳答案

您可以将addOne函数移至数据工厂,也可以将change变量存储在其中。我已经分叉了你的朋克:
http://plnkr.co/edit/un4sH1nI4JP5Gd1Ze26D?p=preview

关于javascript - Ng-Click更新服务出厂值以反射(reflect)在其他 Controller 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24455812/

10-17 03:08