我将尝试使用指令在我的应用程序中实现jQuery多选插件。这是选择元素:
<select multiple
ng-model="data.partyIds"
ng-options="party.id as party.name for party in parties"
xs-multiselect="parties">
</select>
模型parties
是通过$http加载的。多选插件解析select
中的option
元素并生成漂亮的多选框。
有没有办法检测select
元素何时填充了选项,以便我可以告诉多选插件更新其数据?
这是我的指令:
machineXs.directive("xsMultiselect", function() {
return {
restrict: "A",
require: '?ngModel',
link: function(scope, element, attrs, ngModel) {
element.multiselect().multiselectfilter();
scope.$watch(scope[attrs["xsMultiselect"]], function() {
// I tried watching but it doesn't help
element.multiselect('refresh');
element.multiselectfilter("updateCache");
});
}
}
});
chosen
:博客文章;whiteb0x在指令中包装了select2
:http://stackoverflow.com/questions/15212530/select2-tagging-input-loses-value-angularjs - Mark Rajcokscope.$watch(attrs.xsMultiselect, ...)
。 - Mark Rajcok