例如,我想做这样的事情:
<select ng-model="persons">
<option value="person1">Anna Smith</option>
<option value="person2">Karl Pettersson</option>
<option value="person3">Ylvis Russo</option>
</select>
<p ng-view="persons"><p>
让视图在下拉列表中显示每个名称而不是它的值。可能吗?
我尝试观看模型并使用jQuery为文本值分配新模型。然而它最终变得复杂,所以如果这是最好的方式,我的小例子会很棒!
答案 0 :(得分:7)
您只需要定义您的人物对象,然后您就可以随心所欲地做任何事情。有很多方法可以做到......这是一个例子:
HTML
<select ng-model="persons"
ng-options="p as p.label for p in persons">
</select>
<p ng-repeat="p in persons">
{{p.value}}: {{p.label}}
</p>
JS
$scope.persons = [
{ value: 'person1', label: 'Anna Smith' },
{ value: 'person2', label: 'Karl Pettersson' },
{ value: 'person3', label: 'Ylvis Russo' }
];
这是一个jsfiddle:http://jsfiddle.net/bKHh8/
更新
这里是选项标签,不使用角度指数值(这正是你的问题的答案):http://jsfiddle.net/bKHh8/1/
<select>
<option ng-repeat="p in persons" value="{{p.value}}">{{p.name}}</option>
</select>