我正在使用 angular-ui 的 select2 指令。就功能而言,它工作正常(经过一些头发拉动),但我刚刚意识到我为使其工作所做的工作现在阻止了 select2 显示所选值。
<select
ui-select2
id="entityDropDown"
ng-model="selectedUser"
ng-value="users[selectedUser].name"
ng-change="getUserInfo(users[selectedUser])">
<option></option>
<option ng-repeat="user in users" ng-value="{{$index}}" value="{{user.name}}">{{user.name}}</option>
</select>
起初我使用的是 ngOptions,但它与 Select2 不兼容,所以我不得不使用 ngRepeat。我的 ngRepeat 需要在更改时将选定的用户对象发送到函数。为此,我必须使用 ng-value 或 value 将所选用户 $index 绑定到选择元素 ng-modalselectedUser
从那里我可以根据索引在用户中查找对象。BUUUT,现在我已经为我的选项提供了 $index,我猜返回给 select2 的值没有意义,它只是给了我我的占位符。
.run(['uiSelect2Config', function(uiSelect2Config) {
uiSelect2Config.placeholder = "Click here";
uiSelect2Config.dropdownAutoWidth = true;
}]);
我尝试为选择元素赋予它自己的 ng-value 来做 ngChange 正在做的事情并查找选定的用户名......但是是的,那没有成功。