试图找出当绑定的选定选项不再存在时模型不更新的原因。我希望模型的属性更新为未定义/空/空字符串。
情况:一个人使用过滤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-change 函数绑定到第一个函数以强制它更新模型,但是有更好的方法吗?
演示问题的示例Plunker