我正在尝试使用Angular中的ng-repeat
:
<select ng-model="selected_item">
<option ng-repeat="item in items" value="{{item.id}}"
ng-change="doSomething(selected_item)">
{{item.name}} - {{item.another_attribute}}
</option>
</select>
并收到错误No controller: ngModel
。
通常我使用ng-options
构建下拉列表,但由于选项的标签由两个不同的属性组成,因此它不起作用。
<select ng-model="selected_item"
ng-options="item.id as item.name for item in items"
ng-change="doSomething(selected_item)">
如你所见,我不能在这里使用两个属性作为标签。
有什么想法吗?
答案 0 :(得分:8)
您可以在标签表达式中连接字符串。所以
ng-options="item.id as (item.name + '-' + item.another_attribute) for item in items"
应该可以正常工作。
快速演示:http://jsbin.com/OKoviMA/1/
更准确地说,标签表达式是一个真正的角度表达式,所以你也可以应用一个过滤器或调用一个控制器方法,甚至传递当前的itteration值作为参数。