如何更改"值"的值服务?

时间:2015-03-18 10:45:51

标签: angularjs

我创建了整个应用程序中使用的可注入值。最近,我想改变它的价值。以下是我的情况模拟:

angular.module('app', ['ngRoute']) // Create a value
    .value('myValue','foo');


angular.module('app')
    .controller('firstCtrl', ['$scope', '$filter', 'myValue', function($scope, $filter, myValue){
        myValue = 'bar';
        console.log(myValue); // bar
    }])
    .controller('secondCtrl', ['myValue', function(myValue){
        console.log(myValue); // foo
    }]);

但是,myValue的价值根本没有变化,正如您在secondCtrl中看到的那样。我该如何更改此值?任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

Google'角点规则',您已经定义了两次app模块。

请参阅下面的演示。



var app = angular.module('app', []);

angular.module('app') // Create a value
  .value('myValue', {
    data: 0
  });

app.controller('homeCtrl', function($scope, myValue) {


  $scope.value = myValue;

  $scope.update = function() {

    myValue.data = 8;

  }

});

app.controller('secondCtrl', function($scope, myValue) {

  $scope.value = myValue;


});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body>
  <div ng-app="app">
    <div ng-controller="homeCtrl">

      <button ng-click="update()">update</button>
      <br/>home: {{value.data}}

    </div>
    <hr/>
    <div ng-controller="secondCtrl">
      second: {{value.data}}

    </div>
  </div>
</body>
&#13;
&#13;
&#13;