我如何沿着这些方向做点什么:
<select ui-select2 multiple="true" on-change="onChange()" data-ng-model="select2Model"></select>
在我的控制器中,我定义了onChange(select2OnChangeData)。
我尝试添加此
scope: {
model: "=ngModel",
onChange: "&onChange"
},
到angular-ui,但这改变了范围变量并打破了其余的功能。
我真的不想这样做:
.on(“改变”,功能(e)
答案 0 :(得分: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();
});