为什么 Angular 仍然添加未知选择?
Why does Angular still add unknown selection?
我是 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 代码——没有变化。我在控制器中初始化模型值(在获取数据之前)——没有变化。我在获取数据后初始化模型——没有变化。这个未知的选项只是焊接:-).
我不是在问如何摆脱它(比如手动添加它,但隐藏),而是如何修复上面的代码以自动删除它。
您需要将 ngOptions
与 select 一起使用,否则在您 select 一个值之前,这些值将无法正确链接到 select
。这样做的原因我现在不明白,但基本思想是你传入的值将对应于一个数组索引,而不是你可能习惯的值。
作为结果的输入元素的值应该对您没有影响。
ngOptions 指令应采用 value as label for object in collection
.
的形式
如果 HTML 中的值是 undefined
,那是因为上面的表达式不正确 - 请确保 value
指向一个有效值。
你应该使用这个:
在您的控制器中:
$scope.shop_index = $scope.shops[0];
在您的视图中:
<select ng-model="shop_index" ng-options="elem as elem.name for elem in shops"></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 代码——没有变化。我在控制器中初始化模型值(在获取数据之前)——没有变化。我在获取数据后初始化模型——没有变化。这个未知的选项只是焊接:-).
我不是在问如何摆脱它(比如手动添加它,但隐藏),而是如何修复上面的代码以自动删除它。
您需要将 ngOptions
与 select 一起使用,否则在您 select 一个值之前,这些值将无法正确链接到 select
。这样做的原因我现在不明白,但基本思想是你传入的值将对应于一个数组索引,而不是你可能习惯的值。
作为结果的输入元素的值应该对您没有影响。
ngOptions 指令应采用 value as label for object in collection
.
如果 HTML 中的值是 undefined
,那是因为上面的表达式不正确 - 请确保 value
指向一个有效值。
你应该使用这个:
在您的控制器中:
$scope.shop_index = $scope.shops[0];
在您的视图中:
<select ng-model="shop_index" ng-options="elem as elem.name for elem in shops"></select>