angularjs在控制器之间共享数据(服务方法) - 没有调用观察者

时间:2016-10-13 13:39:11

标签: javascript angularjs

我正在努力在控制器之间使用angularjs中的服务方法共享数据。从stackoverflow上的某个地方我得到了这个工作代码(对不起,我想念原始资源)并且我对它进行了扩展。

jsbin sourcecode

(更新版本:http://jsbin.com/hadegec/5/edit?html,js,output

一切正常,原始来源,将商品添加到购物车,总价格在CartCtrl中更新。

我尝试用非常简单的消息扩展它。虽然物品观察者工作得非常好,但我的新消息卡的观察者却无法正常工作。我真的看不到项目更新和我的新消息测试之间的区别。它必须是观察者,因为如果我在$scope.messageCart内设置item-watcher (console.log("w-Items:"+Order.getmessage());我总是得到正确的字符串......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

解决方案是:

  • 不看范围
  • 的(unchagend)消息字符串属性

$scope.ordernewmessage = Order.getOrderMessage(); $scope.$watch('ordernewmessage ', function() {

  • 但是看一个函数返回服务属性

<强> $scope.$watch(function(){return Order.message;}, function(){

我不明白的最后一件事是数组属性'items'和字符串propery'message'之间的区别。我不明白,为什么'$ scope.itemsCart'对'Order.items'的引用被检测为更改,而'$ scope.ordernewmessage'设置为这样; '$ scope.ordernewmessage = Order.getOrderMessage()'未更改......