我有一个带有选择的表单,通过ng-options生成并与ng-model连接。
此选择通过ng-change调用函数
在此功能中,我从选择中删除所选选项,并将引用的ng-model中的值重置为默认值
稍后我想将此选项添加回选择,这可以正常工作,但是当将选项添加到选择它时,它会自动选择它,而不是已经选择的默认值。
这似乎发生在添加选项完成并且angular正在运行其内部$ apply函数的函数之后
如何保持选择默认值?
HTML:
<select ng-model="selectedItem" ng-options="item.name for item in allItems" ng-change="selectItem(selectedItem)">
<option value="">default</option>
</select>
angularjs:
$scope.selectItem = function(selectedItem) {
$scope.allItems.splice( $scope.allItems.indexOf(selectedItem), 1 );
}
$scope.addItem = function(item) {
// $scope.selectedItem == "";
$scope.allItems.push(item);
// $scope.selectedItem == "";
}
答案 0 :(得分:1)
您的ng-model定义了所选内容。因此,当您再次向select选项添加新值并查看它是否有效时,请尝试为其指定默认值。
修改:请记住,它必须 0 (零),而不是&#34; &#34; 强>
而不是
$scope.selectedItem = ""
尝试指定零,例如
$scope.selectedItem = 0
这是一个有效的fiddle demo。