2

我正在尝试ng-repeat在 Angular 中执行此操作:

   <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)">

如您所见,我不能在此处为标签使用两个属性。

有任何想法吗?

4

1 回答 1

8

您可以在标签表达式中连接字符串。所以

ng-options="item.id as (item.name + '-' + item.another_attribute) for item in items" 

应该可以正常工作。

快速演示:http: //jsbin.com/OKoviMA/1/


更准确地说,标签表达式是一个真正的角度表达式,因此您还可以应用过滤器或调用控制器方法,甚至将当前迭代值作为参数传递。

于 2013-09-18T20:38:30.793 回答