2

Ich versuche eine Direktive zu erstellen, um UI $ uibModal eckig zu ziehen. Außerdem möchte ich alle geöffneten Dropdown-Listen von ui-select im Modal-Body schließen, wenn das Modal gezogen wird.Schließen Sie alle ui-Select-Dropdown-Liste programmgesteuert?

Kann jemand alle ui-select Liste in einer $uibModal schließen?

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 ??? 
    } 
} 

Antwort

1

Das ist besser Ansatz, aber Sie werden eine andere Richtlinie nach dieser erstellen müssen:

https://github.com/angular-ui/ui-select/wiki/Accessing- $ wählen

angular.module('myApp').directive('myUiSelect', function() { 
    return { 
    require: 'uiSelect', 
    link: function(scope, element, attrs, $select) { 
     scope.$on('closeAll', (ev,val)=>{ 
     $select.close(); 
     }); 
    } 
    }; 
}); 

und fügen Sie dann zu Ihrem Elemente:

<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> 

danach nur Broadcast-Ereignis alles Beispiel schließen hier:

https://jsbin.com/cadekafata/1/edit?html,js,console,output

Verwandte Themen