1

Angular-ui select2 タグの公式の例は次のとおりです。

myAppModule.controller('MyController', function($scope) {
    $scope.list_of_string = ['tag1', 'tag2']
    $scope.select2Options = {
        'multiple': true,
        'simple_tags': true,
        'tags': ['tag1', 'tag2', 'tag3', 'tag4']  // Can be empty list.
    };
});

そして、私はこのコードを持っています:

$scope.select2Options = {
                        'multiple': true,
                        'simple_tags': true,
                        'tags': $scope.categoryNames
                    };

$scope.$watch(function () { return adminCrudService.getCategoriesForUpdate(); }, function () {
                $scope.action = "edit";
                $scope.categoriesForUpdate = adminCrudService.getCategoriesForUpdate();
                if ($scope.categoriesForUpdate.length > null) {
                    $scope.categoryNames = [];
                    _.forEach($scope.categoriesForUpdate, function (item) {
                        $scope.categoryNames.push(item._backingStore.Name);
                    });

                }
            });

しかし、これは機能しません。Selcet2 をクリックすると、一致が見つかりませんでした。 $scope.categoryNamesを $watch 内に記録しました。

だから私の質問は、タグを動的にロードできるかということです。

4

2 に答える 2

9

私は最近、AngularUI Select2 プロジェクトを使用しているときにこの問題に遭遇し、tags 引数をモデルを返す関数にすることで解決しました。例えば:

$scope.select2Options = {
  multiple: true,
  simple_tags: true,
  tags: function () {
    return $scope.categoryNames;
  }
};

Select2 は、開いたときとキーを押すたびに関数を$scope.categoryNames呼び出すため、への更新はすべてビューに反映されます。tags

これが、Chosen ではなく Select2 を使用したい人にとって役立つことを願っています。

于 2013-11-07T12:05:32.153 に答える