工場から提供されるオブジェクトの変更を監視する場合、AngularJSの特定の動作を理解したいと思います。工場オブジェクトのAngularJS監視プロパティ - 予期しない動作
コントローラまたはhtmlの工場提供オブジェクトのプロパティを読み込むかどうかによって、動作が異なります。
は、ビューにプロパティを表示する、次の2つの方法の比較:オブジェクト全体があるときtestFactoryでのプロパティの変更は、変更が唯一の最初のケースでビューで更新され
app.controller("testController", function($scope, testFactory){
$scope.test_obj = testFactory.read();
$scope.test_prop = testFactory.read().prop;
});
<div>{{test_obj.prop}}</div>
<div>{{test_prop}}</div>
スコープに宣言され、プロパティはビューで呼び出されます。プロパティがスコープに直接宣言されると、ビューで自動的に更新されません。
この現象は、次のjsfiddleで観察することができます。https://jsfiddle.net/fb86p4fm/
は、この現象の理由は何ですか?
多くの意味があります。なぜ$ scope.test_objは参照になりますが、$ scope.test_propは参照ではなくコピーになりますか? –
@JohnRoseは更新を参照してください –
はい、オブジェクトと値が返されています。私はあなたの答えの最初の部分についての知識を忘れていました.JavaScriptで変数を宣言すると、数値がコピーされ、オブジェクトが参照されます。ご協力ありがとうございました! –