Select-ui在某些版本中从选择选项中删除模型对象

时间:2016-06-22 13:34:28

标签: angularjs

我有一个对象列表,我在ui-select的repeat属性中迭代。

我在模型中绑定其中一个对象,然后它从选择选项中消失。

HTML的代码段

<div ui-select="" data-ng-disabled="" data-ng-model="selectedPerson">
  <div ui-select-match="" placeholder="Select">
      <div>
        <span>{{$select.selected.name}}</span>
      </div>
  </div>
  <div ui-select-choices="" data-repeat="person in people" data-scrollable="">
      <div>
          <span class="itembalance">{{person.name}}</span>
      </div>
  </div>
</div>

JS-控制器

app.controller('DemoCtrl', function($scope, $http, $timeout) {

  $scope.people = [
    { name: 'Adam',      email: 'adam@email.com',      age: 12, country: 'United States' },
    { name: 'Amalie',    email: 'amalie@email.com',    age: 12, country: 'Argentina' },
    { name: 'Estefanía', email: 'estefania@email.com', age: 21, country: 'Argentina' },
    { name: 'Adrian',    email: 'adrian@email.com',    age: 21, country: 'Ecuador' },
    { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30, country: 'Ecuador' },
    { name: 'Samantha',  email: 'samantha@email.com',  age: 30, country: 'United States' },
    { name: 'Nicole',    email: 'nicole@email.com',    age: 43, country: 'Colombia' },
    { name: 'Natasha',   email: 'natasha@email.com',   age: 54, country: 'Ecuador' },
    { name: 'Michael',   email: 'michael@email.com',   age: 15, country: 'Colombia' },
    { name: 'Nicolás',   email: 'nicolas@email.com',   age: 43, country: 'Colombia' }
  ];

  $scope.selectedPerson = { name: 'Wladimir',  email: 'wladimir@email.com',  age: 30, country: 'Ecuador' };

});

Plnkr here

知道出了什么问题。这是在我升级到此版本后开始发生的。它不会发生在0.7。*我找不到任何指示其原因的更改日志。

目标版本为0.17.1

2 个答案:

答案 0 :(得分:1)

这可能是关于ui-select的错误。如果在编译指令后设置值,则没有问题

$timeout(function() {
    $scope.select.selectedPerson =  $scope.people[1];
}, 2000);

http://plnkr.co/edit/sGnZcV6ErMPD1R6MG5U0?p=preview

但是如果在编译之前设置了默认值,则会删除选项。

答案 1 :(得分:0)

好的,解决了它并比较了两个版本0.17.1和0.18.0

似乎两者都做了一些改变。我没有挖太多但是设置了remover-selected =&#34; false&#34;似乎解决了这个问题。在0.17.1中,此版本默认设置为false,但现在基于uiSelectConfig设置。

<div ui-select="" data-ng-disabled="" data-ng-model="selectedPerson" remove-selected="false">

其他人偶然发现了这一点,我建议使用0.17.1,但大致相同。