作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是我在 Controller 中设置重复选项的代码-
$scope.repeats = [
{name: "No", value: 3},
{name: "Every day", value: 6},
{name: "Every week", value: 9},
{name: "Every month", value: 12},
{name: "Every year", value: 15},
];
以下是 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.log(event.repeat);
我得到正确的值 3、6 等
请让我知道我在这个概念上做错了什么。
最佳答案
你没有做错什么,就是这样ng-options
作品。它分配一个 value
属性到每个 <option>
那是数组中选项的索引。然后当选择的change
事件发生时,它在数组中查找该索引处的对象,计算值表达式(在您的例子中为 event.value
)并设置 ng-model
相应的值(value)。
如果您以 AngularJS 的方式做事,这对您来说不重要,因为几乎所有内容都将访问模型(作用域),而不是 DOM。
但是,如果您必须设置 value
为您的 <option>
正确设置属性标签,不要使用 ng-options
并改用以下标记:
<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>
关于javascript - 如何在 AngularJS 中设置选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396897/
我是一名优秀的程序员,十分优秀!