0
我有一個Angular UI選擇,用於根據所選選項切換一些複選框(使用ng-repeat
生成)。當使用Angular UI選擇模型時發生意外的變化
複選框也可以手動切換,這就是出現問題的地方。
情況如下:
- 選擇一個選項。某些複選框基於
$scope.recipes.available
型號上指定選項的ingredients
屬性進行切換。 - 手動切換附加複選框。
- 在select上選擇不同的選項。相應的複選框被正確切換。
- 切換回第一個選定的選項。除了僅切換最初在
ingredients
屬性中指定的複選框,手動修改的複選框也會被切換。在調試時,我發現ingredients
屬性已被修改。
這個plunkr演示了這個問題。
到目前爲止,在閱讀了無數的範圍問題(我是Angular的新手)並且反覆嘗試重構我的代碼之後,我一直無法解決這個問題。
在繼續並嘗試重構代碼一次之前,我想了解這裏發生了什麼。
爲什麼要修改ingredients
屬性?
當食譜改變我做'$ scope.bundles.selected = $ scope.recipes.available [$ selectedRecipe] .ingredients;'。不應該重置'$ scope.bundles.selected'嗎? – excentris
啊,錯過了。你不應該分配一個數組到另一個。你會想要設置它等於這樣的副本:$ scope.bundles.selected = angular.copy($ scope.recipes.available [$ selectedRecipe] .ingredients); – jbrown
確實有用(謝謝!),但我仍不明白爲什麼它是必要的。我將成分的內容分配給'$ scope.bundles.selected',而不是相反...... – excentris