我正在使用 angular-ui 进行排序,使用 ui-sortable 指令。是否可以根据范围状态动态启用/禁用可排序功能?所以我需要一个按钮来改变范围属性的状态,并根据这个属性排序是否应该工作。
问问题
9478 次
4 回答
26
angular 指令支持观察可排序选项何时发生变化:
scope.$watch(attrs.uiSortable, function(newVal, oldVal){
因此,您所要做的就是查看 jqueryui 可排序文档,并更新插件上的正确属性。
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
};
});
于 2013-07-17T21:15:19.507 回答
0
您可以使用在版本和不可排序版本ui-if
之间切换ui-sortable
,但这是一个可怕的设计。但是,如果您查看了jQuery Sortable Docs,似乎有一个disabled
. 如果指令当前监视选项对象的更改,您可以简单地切换此选项。如果选项对象是通过引用而不是值来监视的,那么也许您应该使用调整打开一个拉取请求?
于 2013-05-04T08:50:17.413 回答
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;
};
于 2017-01-31T04:56:25.263 回答
-1
我对此的第一次尝试将包括一个带有链接函数的新指令,该指令根据范围内的某些值编译模板片段,包括或不包括 ui-sortable。
有空的时候写代码。
于 2013-04-24T02:04:00.587 回答