为什么Angular仍会添加未知选择?

时间:2016-07-10 18:00:43

标签: angularjs html-select

我对Angular很新,所以我错过了一些微不足道的事情:

<select ng-model="shop_index">
  <option ng-repeat="elem in shops" 
          ng-selected="{{$first}}" 
          ng-value="{{$index}}">{{elem.name}}</option>
</select>

当我查看创建的HTML代码时,除了那个未知的条目外,它看起来很好。我将ng-init="0"添加到HTML代码中 - 没有变化。我在控制器中初始化模型值(在获取数据之前) - 没有变化。我在获取数据后初始化模型 - 没有变化。这个未知的选项只是焊接: - )。

我不是要求如何摆脱它(比如手动添加,但隐藏)但是如何修复上面的代码以自动删除它。

2 个答案:

答案 0 :(得分:1)

您需要将ngOptions与select一起使用,否则在您选择值之前,这些值将无法正确链接到select。这个的原因让我逃脱了,但基本的想法是你传入的值将对应于数组索引,而不是你可能习惯的值。

作为结果的输入元素的值应该对您没有影响。

ngOptions指令应采用value as label for object in collection

的形式

如果HTML中的值为undefined,那是因为上面的表达式不正确 - 请确保value指向有效值。

答案 1 :(得分:1)

你应该用这个:

控制器

$scope.shop_index = $scope.shops[0];

视图

<select ng-model="shop_index" ng-options="elem as elem.name for elem in shops"></select>