2013-04-22 13 views
11

'da ui-emilebilir yönergeyi dinamik olarak devre dışı bırakma Ui-emilebilir yönergeyi kullanarak sıralamak için açısal-ui kullanıyorum. Kapsam durumuna göre sıralanabilir işlevselliği dinamik olarak etkinleştirmek/devre dışı bırakmak mümkün mü? Bu yüzden, kapsam özelliğinin durumunu değiştiren ve bu özelliğe bağlı olarak çalışabilen ya da çalışamayan bir düğmenin olması gerekir. compiles bir şablon parçası dahil ederek veya kapsamda bazı değere dayalı ui-sıralanabilir içermeyen bir bağlantı fonksiyonu ile yeni directive yer alacağını şunaAngular-ui

cevap

0

benim ilk denemem.

Zamanım olduğunda kod.

0

ui-sortable sürümü ve düzenlenemeyen bir sürüm arasında geçiş yapmak için ui-if kullanabilirsiniz, ancak bu korkunç bir tasarımdır. Ancak, jQuery Sortable Docs'u işaretlediyseniz, disabled için bir seçenek var gibi görünüyor. Yönerge, şu anda değişiklikler için seçenekler nesnesini izlerse, bu seçeneği kolayca değiştirebilirsiniz. Seçenekler nesnesi referans ile değil, değerle izleniyorsa, belki de tweak ile bir çekme isteği açmalısınız?

scope.$watch(attrs.uiSortable, function(newVal, oldVal){ 

Yani tüm yapmak zorunda jQueryUI sıralanabilir belgelere bakmak oldu ve eklenti doğru özelliğini güncelleyin: sıralanabilir seçenekleri değiştirdiğinizde

18

açısal yönergesi izlerken destekler.

Html

<ul ui-sortable="sortableOptions" ng-model="items"> 
    <li ng-repeat="item in items">{{ item }}</li> 
</ul> 
<button ng-click="sortableOptions.disabled = !sortableOptions.disabled">Is Disabled: {{sortableOptions.disabled}}</button> 

JS

app.controller('MainCtrl', function($scope) { 
    $scope.items = ["One", "Two", "Three"]; 

    $scope.sortableOptions = { 
    disabled: true 
    }; 
}); 
+0

teşekkürler! Bu gerçekten yardımcı oldu! – Whizkid747

+0

bu durum angular-ui v0.4.0'da görünmüyor. Kapsam için sortable.js'de bir arama. $ Watch hiçbir sonuç döndürmez. DÜZENLEME: bower üzerinde açısal-ui sürümü güncel değil gibi görünüyor! –

+0

plunker bağlantısı bozuldu. Eğer başka bir plunker –

0

HTML

<div class="group-container" ui-sortable="vm.groupSortable" ng-model="group.groups"> 

JS

vm.groupSortable = { 
    connectWith: ".group-container", 
    disabled: true 
}; 

vm.disableDragAndDrop = function(bVar) 
{ 
    vm.groupSortable.disabled = bVar; 
}; 
cevap Jason için