Angular指令更新ng-repeat

时间:2013-12-24 17:05:36

标签: javascript angularjs scope angularjs-directive angularjs-ng-repeat

我希望每次更新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执行时,我如何执行此指令?

感谢。

1 个答案:

答案 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。