Browse Source

Use isolated scope with two-way binding in ng-sortable

pull/364/head
ha-D 10 years ago
parent
commit
1ab661f10e
  1. 32
      ng-sortable.js

32
ng-sortable.js

@ -64,10 +64,10 @@
// Export // Export
return { return {
restrict: 'AC', restrict: 'AC',
scope: { ngSortable: "=?" },
link: function (scope, $el, attrs) { link: function (scope, $el, attrs) {
var el = $el[0], var el = $el[0],
ngSortable = attrs.ngSortable, options = scope.ngSortable || {},
options = scope.$eval(ngSortable) || {},
source = getSource(el), source = getSource(el),
watchers = [], watchers = [],
sortable sortable
@ -164,22 +164,20 @@
nextSibling = null; nextSibling = null;
}); });
if (ngSortable && !/{|}/.test(ngSortable)) { // todo: ugly angular.forEach([
angular.forEach([ 'sort', 'disabled', 'draggable', 'handle', 'animation',
'sort', 'disabled', 'draggable', 'handle', 'animation', 'onStart', 'onEnd', 'onAdd', 'onUpdate', 'onRemove', 'onSort'
'onStart', 'onEnd', 'onAdd', 'onUpdate', 'onRemove', 'onSort' ], function (name) {
], function (name) { watchers.push(scope.$watch('ngSortable.' + name, function (value) {
watchers.push(scope.$watch(ngSortable + '.' + name, function (value) { if (value !== void 0) {
if (value !== void 0) { options[name] = value;
options[name] = value;
if (!/^on[A-Z]/.test(name)) {
if (!/^on[A-Z]/.test(name)) { sortable.option(name, value);
sortable.option(name, value);
}
} }
})); }
}); }));
} });
} }
}; };
}]); }]);

Loading…
Cancel
Save