1

これらの行に沿って何かを行うにはどうすればよいですか:

   <select ui-select2 multiple="true" on-change="onChange()" data-ng-model="select2Model"></select>

私のコントローラーでは、 onChange(select2OnChangeData) が定義されています。

これを追加してみました

    scope: {
        model: "=ngModel",
        onChange: "&onChange"
    },

angular-ui に変更しましたが、スコープ変数が変更され、残りの機能が壊れていました。

私は本当に控えたい:

.on("変更", 関数(e)

4

1 に答える 1

2

私のプロジェクトでこれを行ったのは良いことです:

HTML

<select data-placeholder="Select an asset" class="input-xxlarge" ui-select2="sourceAssetId" ng-model="sourceAssetId" ng-options="asset.id as asset.name for asset in assets"></select>

指令

module.directive("uiSelect2", function() {
    var linker = function(scope, element, attr) {
        element.select2();

        scope.$watch(attr.ngModel, function(newValue, oldValue) {
            console.log("uiSelect", attr.ngModel, newValue, oldValue);

            // Give the new options time to render
            setTimeout(function() {
                if(newValue) element.trigger("change");
            })
        });
    }

    return {
        link: linker
    }
});

関連するコントローラ コード

$scope.$watch("sourceAssetId", function(newValue, oldValue) {
    if(newValue) $scope.fetchAsset();
});
于 2013-03-25T18:57:55.117 に答える