范围变量引用服务数据AngularJS

时间:2014-09-04 13:26:02

标签: angularjs angularjs-scope angular-services

我有一个带有对象的服务,并且该对象具有属性值,我将其设置为引用控制器的范围值。为什么当我更新范围值时,服务值不会更新,反之亦然????

 .service('Item', function () { return { value: 0 }}
 .ctrl('Ctrl', function ($scope, Item) { 
     $scope.value = Item.value;
     Item.value = 2;
 });

1 个答案:

答案 0 :(得分:1)

试试这个 -

app.service('Item', function(){
    this.value = 0; // instead of value return { value: 0 }
});

app.controller('ACtrl', function ($scope, Item) { 
   console.log('Item', Item);

   $scope.value = Item.value;
   console.log('$scope.value', $scope.value);

   Item.value = 2;
   console.log('Item', Item);
});

以上代码的输出 -

Item Constructor {value: 0} 
$scope.value 0 
Item Constructor {value: 2} 

此处Plnker code