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 の新しいタグを作成します (ただし、オプションからは削除されます)。明らかに、5 ではなく「tag1」と言いたいのですが、モデル内で 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 に答える