6
試圖找出爲什麼當綁定選定選項不再存在時,模型不會更新。我期望模型的屬性更新爲undefined/null /空字符串。篩選出選擇選項後,角度模型無法更新
情況:一個select
使用過濾器驅動另一個select
。選擇完成後,轉到原始select
並選擇其他選項。過濾器將按預期移除第二個select
選項,但第二個select
上的模型屬性將保持不變。
問題:當你去傳遞模型時,它將被填充壞/先前的值。此外,使用Angular驗證,需要select
...該表單在技術上是「有效的」,因爲該模型具有該屬性的值(以前的值)。
HTML:
<select name="Category" ng-model="selectedCategory"
ng-options="item.name as item.name for item in categories">
<option value="">All Categories</option>
</select>
<select name="SubCategory" ng-model="selectedSubCategory"
ng-options="item.name as item.subCategory for item in categories | filter:selectedCategory">
<option value="">All SubCategories</option>
</select>
型號:
app.controller('MainCtrl', function($scope) {
$scope.categories = [{
"id": "1",
"name": "Truck",
"subCategory": "Telescope"
}, {
"id": "2",
"name": "Truck",
"subCategory": "Hazmat"
}, {
"id": "3",
"name": "Van",
"subCategory": "Mini"
}];
});
我相當肯定,我可以扎一個NG-改變功能,第一,迫使它更新模型,但有一個更好的方法?
例Plunker演示問題
是的,這在技術上的工作,但增加了$手錶各綁選擇可能變得昂貴,不是嗎?有更好的/更清潔的方式嗎? – Andrew 2014-09-18 18:12:08
安德魯,我認爲這是你的情況的正確解決方案。 1個選擇器 - 1個選擇 - 沒關係 – Alexei 2014-09-18 18:16:40
@Andrew Dickerson您的其他選項與您在問題結束時列出的一樣 - 您可以簡單地強制selectedSubCategory的狀態爲無效。 @ ng-change =「selectedSubCategory =''」' – Matt 2014-09-18 18:17:54