如何在承诺后用angular ui-select填充选项



我有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'
           }
});

相关内容

  • 没有找到相关文章

最新更新