Javascript 角度指令在ng repeat上更新
我希望每次更新ng repeat时都能更新我的ngDirective。 我的代码如下所示:Javascript 角度指令在ng repeat上更新,javascript,angularjs,scope,angularjs-directive,angularjs-ng-repeat,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,
<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) {
...
}
});
});
{{i}
App.controller(“SomeCtrl”,函数($scope){
$scope.data=[1,2,3];
});
App.directive(“myDirective”,function()){
$(this).sortable({//如何获取元素?
开始:功能(事件、用户界面){
...
},
停止:功能(事件、用户界面){
...
}
});
});
问题
- 如何将as
元素与指令一起使用李>$(this)
- 每次执行
的值发生变化时,我如何执行此指令$scope.data
谢谢。首先,指令至少接受三个参数:范围、元素和属性
function(scope, element, attrs) {....}
因此,您的$(this)等于元素,或者$(元素[0])
其次,最好使用为此目的制定的angularJS指令
对于可排序,请使用此
我不太喜欢在AngularJS中使用JQuery,因为它在框架不知道的情况下操作DOM
但是,如果没有针对特定领域的纯angularjs指令,则可以使用它,只要它被适当地包装为一个指令 您究竟是如何更改$scope.data中的值的?根据我使用Angular的经验,您只需要确保
$scope.data
具有新数据,并且已经显示了更改。一个非常简单的想法,你能解释一下ngDirective的用途吗?sortable通常在包含项目的父容器上调用。你的问题是什么还不清楚。请在plunker中创建一个演示,复制您的问题。此外,您应该使用link
来访问元素,并在每次重新调用ng repeat以执行jquery sortable时运行所需的可排序代码。例如,我的服务更新$scope.data,ng repeat呈现更改,并且我的指令是reexecute。