1

AngularJSベースアプリケーション用のjQueryUIウィジェットを使用していくつかの便利なディレクティブを作成しようとしています。

それらの1つは、「select」要素で機能し、ディレクティブで問題ありませんが、理解できないのはこれだけです。

  1. 選択リストがajaxリクエストから入力された場合、データが入力されたときにjqueryuiウィジェットを適用するように指示するにはどうすればよいですか?$ watchを使用していると仮定しますが、方法がわかりません。

編集:例では、 multiselectプラグイン のディレクティブを実装しようとしています。サーバーの応答をシミュレートしていますが、すべてをタイムアウトにしていることに注意してください。

これがplunkerのコードです

4

1 に答える 1

0

アイテムリストへの変更を$watchingしてからrefresh、multiselectプラグインを呼び出す必要があります... これが解決策を示すプランクです

angular.module('myui', [])
    .directive('qnMultiselect', function() {
        return { 
          restrict: 'A',
          require: 'ngModel',
          link: function(scope, elem, attr) {
            //set up the plugin.
            elem.multiselect({ allowClear: false });

            //get the source of the ngOptions
            var parts = attr.ngOptions.split(' ');
            var source = parts[parts.length - 1];

            //watch the options source and refresh the plugin.
            scope.$watch(source, function(value) {
              elem.multiselect('refresh');
            });
          }        
        };
    });
于 2012-10-25T13:40:24.080 に答える