我希望每次更新ng-repeat时都会更新ngDirective。 我的代码如下:
<div ng-cotroller="SomeCtrl">
<div ng-repeat="i in data" myDirective>
{{i}}
</div>
</div>
App.controller("SomeCtrl", function($scope) {
$scope.data = [1, 2, 3];
});
App.directive("myDirective", function() {
$(this).sortable({ // how I can get the element?
start: function(event, ui) {
...
},
stop: function(event, ui) {
...
}
});
});
问题
$(this)
指令中的元素? $scope.data
的值更改a.k.a. ng-repeat执行时,我如何执行此指令?感谢。
答案 0 :(得分:1)
首先,指令接受min。三个参数,范围,元素和attrs
function(scope, element, attrs) {....}
因此,$(this)等于element,或$(element [0])
其次,最好使用为此目的而制作的angularJS指令。
对于可排序,请使用此https://github.com/angular-ui/ui-sortable。
我不是在AngularJS中使用JQuery的忠实粉丝,因为它在没有框架知道的情况下操纵DOM。
然而,只要它被正确包装为指令就可以使用它,如果没有纯粹的angularjs指令用于特定的puropose。