AngularJS:在没有选择的情况下为选择添加选项?

时间:2014-11-20 11:47:33

标签: javascript angularjs forms

我有一个带有选择的表单,通过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 == "";
}

1 个答案:

答案 0 :(得分:1)

您的ng-model定义了所选内容。因此,当您再次向select选项添加新值并查看它是否有效时,请尝试为其指定默认值。

修改:请记住,它必须 0 (零),而不是&#34; &#34;

而不是

$scope.selectedItem = ""

尝试指定零,例如

$scope.selectedItem = 0

这是一个有效的fiddle demo