我有html
<ui-select multiple ng-model="item.selectedOrganizations" theme="bootstrap" ng-disabled="disabled" sortable="true" close-on-select="false">
<ui-select-match placeholder="Select organizations...">{{$item.Name}}</ui-select-match>
<ui-select-choices repeat="organization.Name as organization in organizationsDB | propsFilter: {Name: $select.search}">
<div ng-bind-html="organization.Name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
item里已经有东西了。selectedOrganizations,所以我将用一些值预先填充选择框。名称数组。
item.selectedOrganizations = selectedOrganizations;
我将用一些数据填充选择框的选项。
$http.get('/admin/organizations')
.success(function(data){
vm.organizationsDB = data.data;
});
现在一切正常,但当然我必须声明变量:
vm.organization = {};
// vm.organizationsDB = [];
如果我留下评论,选择框将工作,但在控制台中有错误。如果我删除注释并首先声明organizationsDB变量,那么除了条目之外,语法中不会有任何错误。selectedOrganizations将不会预先填充名称数组。
在这件事上有人能帮我吗?你的观点有点错,我猜你是从一个例子中复制的,并没有把它和你自己的实现联系在一起。
我认为我已经解决了你的问题下面(这里提琴:http://jsfiddle.net/qmf49qo3/)。我添加了一个恶搞的对象文字在你的承诺响应的地方。
<视图/strong>
<div ng-app="app" ng-controller="myCtrl as vm">
<ui-select tagging ng-model="vm.selectedOrganizations" theme="bootstrap">
<ui-select-match placeholder="Pick one...">{{$select.selected.value}}</ui-select-match>
<ui-select-choices repeat="val as organization in vm.organizationsDB | filter: $select.search track by organization.value">
<div ng-bind="organization.value | highlight: $organization.search"></div>
</ui-select-choices>
</ui-select>
</div>
var app = angular.module('app', ['ui.select']);
app.controller("myCtrl", function() {
vm = this;
vm.isLoaded = false;
vm.organizationsDB = [{
'key': 1,
'value': 'IBM'
}, {
'key': 2,
'value': 'Microsoft'
}];
vm.selected;
vm.selectedOrganizations = {
'key': 1,
'value': 'Prepopulated Value'
}
});