詳しい説明変化した場合:AngularJS:リフレッシュNG-オプションのプロパティソースオブジェクトが
[
{
id: 1,
name: "111",
some: "qqq"
},
{
id: 2,
name: "222",
some: "www"
}
];
のように定義を選択:
を私は複数のプロパティ(だけでなく、キーと値のペア)とオプションのリストを持っています<select name="mySelect" id="mySelect"
ng-options="option.name for option in opts track by option.id"
ng-model="mod1"></select>
アプリのロジックに応じて、余分な特性が変化することがあります。
{
id: 2,
name: "222",
some: "www1"
}
しかし、交流を選択内のリストは変更されません! しかし、名前が変更された場合、optionList全体がリフレッシュされます。
簡潔に言えば、デモはJSFiddleまたはJSFiddleです。余分なプロパティとキーの両方が
新しい値を受け取る誰もが解決策を知っています - ボタンをクリックすると、ボタンが
- :私は2つの非常によく似た例を準備しましたか?
UPDATE
今私は
update + delay + update
溶液でその問題を解決していの場合:this.click = function(){ $scope.opts = {}; $timeout(function() { $scope.opts = { /* NEW OBJECT */}; }, 0); }
これは、ドキュメントページ上で詳細に説明されていますhttps://docs.angularjs.org/api/ ng/directive/ngOptionsです。 $ watchCollectionは、オブジェクト(またはモデルが配列の場合はコレクション内のアイテム)のプロパティの浅い比較を行います。つまり、オブジェクト/コレクション内の最初のレベルよりも深いプロパティを変更しても、再描画 " – Claies
ハム、指摘のおかげで。「最初のレベル」はすべてのプロパティを意味しますが、含まれていないオブジェクトを意味します。 '{name:" 111 "、id:1、some:{name:" 111-1 "、id:" 1-1 "}}'だからこの場合、 'some.name'の変更は無視されるべきです... – user3556789