Javascript 如何在AngularJS中设置选项值
下面是我在控制器中设置重复选项的代码- 以下是HTML模板中用于创建选择选项的代码-Javascript 如何在AngularJS中设置选项值,javascript,html,angularjs,selection,Javascript,Html,Angularjs,Selection,下面是我在控制器中设置重复选项的代码- 以下是HTML模板中用于创建选择选项的代码- <select id="repeatval" ng-model="event.repeat" ng-options="repeat.value as repeat.name for repeat in repeats" ng-init="event.repeat = event.repeat || repeats[0].value" c
<select id="repeatval"
ng-model="event.repeat"
ng-options="repeat.value as repeat.name for repeat in repeats"
ng-init="event.repeat = event.repeat || repeats[0].value"
class="btn">
</select>
下面是生成的代码-
<select class="btn ng-valid ng-dirty" ng-init="event.repeat = event.repeat || repeats[0].value" ng-options="repeat.value as repeat.name for repeat in repeats" ng-model="event.repeat" id="repeatval">
<option value="0">No</option>
<option value="1">Every day</option>
<option value="2">Every week</option>
<option value="3">Every month</option>
<option value="4">Every year</option>
</select>
现在正如你们所看到的,数值是0,1,2,3,4,尽管我的预期是-3,6,9,12,15
让我知道我做错了什么,关于这个概念我做错了什么
仅供参考-如果我正在安慰console.logevent.repeat;我得到了正确的值3、6等
请让我知道我在这个概念上做错了什么。你没有做错任何事,这就是ng选项的工作原理。它为数组中选项的索引指定一个值属性。然后,当select的更改事件发生时,它会在数组中的该索引处查找对象,计算实例中的值表达式event.value,并相应地设置ng模型的值 如果您以AngularJS的方式做事,这对您来说应该不重要,因为几乎所有东西都将访问模型范围,而不是DOM 但是,如果必须为标记正确设置value属性,请不要使用ng选项,而是使用以下标记:
<select id="repeatval"
ng-model="event.repeat"
ng-init="event.repeat = event.repeat || repeats[0].value"
class="btn">
<option ng-repeat="repeat in repeats track by repeat.value" value="{{repeat.value}}">
{{repeat.name}}
</option>
</select>
你没有做错任何事,这就是ng选项的工作原理。它为数组中选项的索引指定一个值属性。然后,当select的更改事件发生时,它会在数组中的该索引处查找对象,计算实例中的值表达式event.value,并相应地设置ng模型的值 如果您以AngularJS的方式做事,这对您来说应该不重要,因为几乎所有东西都将访问模型范围,而不是DOM 但是,如果必须为标记正确设置value属性,请不要使用ng选项,而是使用以下标记:
<select id="repeatval"
ng-model="event.repeat"
ng-init="event.repeat = event.repeat || repeats[0].value"
class="btn">
<option ng-repeat="repeat in repeats track by repeat.value" value="{{repeat.value}}">
{{repeat.name}}
</option>
</select>
我没有使用ng repeat,因为在我读到的地方,为了避免由于性能影响而使用它,我在我的表单页面上选择了5-6个选项..+1,因为如果您以AngularJS的方式做事,这对您来说应该不重要,因为几乎所有东西都将访问模型范围,不是DOMI我没有使用ng repeat,因为在我读到的地方,为了避免由于性能影响而使用ng repeat,因为我在我的表单页面上选择了5-6个选项。+1因为如果您以AngularJS的方式进行操作,这对您来说应该不重要,因为几乎所有内容都将访问模型范围,而不是DOM