我对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代码中 - 没有变化。我在控制器中初始化模型值(在获取数据之前) - 没有变化。我在获取数据后初始化模型 - 没有变化。这个未知的选项只是焊接: - )。
我不是要求如何摆脱它(比如手动添加,但隐藏)但是如何修复上面的代码以自动删除它。
答案 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>