Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在AngularJS中设置选项值_Javascript_Html_Angularjs_Selection - Fatal编程技术网

Javascript 如何在AngularJS中设置选项值

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

下面是我在控制器中设置重复选项的代码-

以下是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" 
        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