我正在尝试构建一个指令,使角度UI $ uibModal可拖动。而且我想关闭模态体中ui-select的所有打开的下拉列表,当模态拖动时。
有谁知道如何关闭ui-select
中的所有$uibModal
列表?
jsbin https://jsbin.com/lopitopiwa/edit?html,js,output
angular.module('myApp').directive('uibModalDragging',[
UibModalDragging
]);
function UibModalDragging() {
return {
restrict: 'A',
scope: false,
link: function (scope, iElem, iAttrs) {
$(iElem).closest('.modal-content').draggable({
handler: '.panel-heading',
start: onStart
})
}
};
function onStart() {
//*********************************************
//close all ui-select ???
}
}
答案 0 :(得分:2)
这是更好的方法,但你需要根据这个创建另一个指令:
https://github.com/angular-ui/ui-select/wiki/Accessing- $选择
angular.module('myApp').directive('myUiSelect', function() {
return {
require: 'uiSelect',
link: function(scope, element, attrs, $select) {
scope.$on('closeAll', (ev,val)=>{
$select.close();
});
}
};
});
然后将其添加到您的元素中:
<ui-select my-ui-select ng-model="selected.value">
<ui-select-match>
<span ng-bind="$select.selected.name"></span>
</ui-select-match>
<ui-select-choices repeat="item in myModalCtrl.itemArray">
<span ng-bind="item.name"></span>
</ui-select-choices>
</ui-select>
之后只是广播事件来关闭所有示例: