2016-06-22 16 views
0

私はng-cart directiveのプロジェクトで作業しています。この指令には、ショッピングカートに追加された合計金額を更新する関数totalCost()を含むサービスがあります。Angular JS - サービスの値がビューで更新されない

ビューでそれを示すために、私は私のコントローラでこれを書いた:

this.totalCost = ngCart.totalCost(); 

図に示す値が正しいですが、問題は、私が追加したときに、この値は更新されないということです/カートからアイテムを削除します。ただし、ページを更新するときのみです。

私は

$scope.$watch('ngCart.totalCost()', function() { 
    this.totalCost = ngCart.totalCost(); 
}); 

で試してみました。しかし、その後totalCostは、すべてのビューには表示されません。

ウォッチコールバックは、この値角度ので、によって呼び出されますので事前にhere

おかげ

$scope.$watch('ngCart.totalCost()', function() { 
    this.totalCost = ngCart.totalCost(); 
}.bind(this)); 

、へ

答えて

1

変更私のコードのplunkrを確認することができますこの関数はコントローラのインスタンスを指しません。ここで

はあなたのplunkはngCart.totalCostがスコープのプロパティではありませんので、私はそれで時計の定義を変更した、 http://plnkr.co/edit/HoEC0obWOPFLWbSojO7F?p=preview

です。

+0

それでした!私は狂って行っていた、それは私の前にあった、洞察力のおかげです。 – Joe82

関連する問題