0

这是我的标签输入

<input type="hidden" ng-model="tags" class="input-large" ui-select2="{ tags: [{ id:5, text: 'tag1' }, { id: 8, text: 'tag2' }] }" />

现在我该如何制作,比如说带有 id 5 的标签,在加载时预先选择?

如果我这样做 $scope.tags = [5]; 甚至 $scope.tags = 5 它会创建一个 ID 为 5 和文本为 5 的新标签(尽管它已从选项中删除)。我显然希望它说“tag1”,而不是 5,但仍保留模型中的 ID。 .

4

2 回答 2

0

你展示了什么:

HTML

<p>
  <input type="text" ng-model="tags" 
         ui-select2="{tags: [{id:4, text:'red'},{id:2, text:'blue'},{id:8, text:'white'},{id:41, text:'green'},{id:13, text:'yellow'}]}" />
</p>

Angular-UI

angular.module('app').controller('MainCtrl', function($scope) {
  $scope.message = "Will load shortly...";

  $scope.tags = [8, 2];

  $scope.message = 'Loaded';
});

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

为什么它当时起作用了?我不知道。也许有一个类型或某些东西没有正确加载。我从来没有使用过 Angular 或 Select2,所以我试了几次才让它工作。

唔。好吧,将您的代码按原样复制到 plunk 中,没有其他更改,我得到:

http://embed.plnkr.co/wUQq8P

所以我猜这个问题我要么不理解,要么在你的代码中的其他地方。

这是最初的工作示例,使用一种可以轻松与 AJAX 配对的方法:

HTML

<body ng-controller="MainCtrl">
  <h4>{{message}}</h4>
  <p>
    <input type="text" ui-select2="options" ng-model="tags" />
  </p>
</body>

Angular-UI

angular.module('app').controller('MainCtrl', function($scope) {
  $scope.message = "Will load shortly...";

  $scope.options = {
    tags: [
      {id:4, text:'red'},
      {id:2, text:'blue'},
      {id:8, text:'white'},
      {id:41, text:'green'},
      {id:13, text:'yellow'}
    ]
  };

  $scope.tags = [8, 2];

  $scope.message = 'Loaded';
});

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

于 2013-03-28T02:28:52.030 回答
0

所以问题实际上出在使用的 select2 版本上。我使用的是 3.3.1,它不起作用,请参阅http://plnkr.co/edit/Z53wvGKT1if1iZAVIerY?p=preview

当我使用 3.3.2 时,它按预期工作。

于 2013-03-28T07:56:48.803 回答