以编程方式关闭所有 ui-select 下拉列表?
Close all of ui-select drop down list programmatically?
我正在尝试 build 指令使 angular UI $uibModal 可拖动。而且我还想关闭模态主体中所有打开的 ui-select 下拉列表,当模态正在拖动时。
有谁知道如何关闭 $uibModal
中的所有 ui-select
列表?
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 ???
}
}
这是更好的方法,但您需要根据此创建另一个指令:
https://github.com/angular-ui/ui-select/wiki/Accessing-$select
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>
之后只是广播事件以关闭这里的所有示例:
我正在尝试 build 指令使 angular UI $uibModal 可拖动。而且我还想关闭模态主体中所有打开的 ui-select 下拉列表,当模态正在拖动时。
有谁知道如何关闭 $uibModal
中的所有 ui-select
列表?
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 ???
}
}
这是更好的方法,但您需要根据此创建另一个指令:
https://github.com/angular-ui/ui-select/wiki/Accessing-$select
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>
之后只是广播事件以关闭这里的所有示例: