在一个元素中使用ng-repeat和custom指令时的范围不同

时间:2014-09-16 01:26:23

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

我的指令如下:

angular.module('myApp').directive('myDirective', function() {
    return {
        templateUrl: '/views/myView.html',
        restrict: 'E',
        link: function (scope, element, attrs) {
            console.log(scope); 
            console.log(angular.element(element).scope());
        }
    };
});

模板html是:

<div>{{item.text}}</div>

并查看html是:

<div ng-init="items=[{text:'hello'}, {text: 'world'}]">
<my-directive ng-repeat="item in items"></my-directive>
</div>

我发现scopeangular.element(element).scope()不是同一个,但我必须使用angular.element(element).scope()方式将ngRepeat-item的范围放在其他地方。 我误解了什么吗?

注意

只有在包含jQuery时才能重现代码。

1 个答案:

答案 0 :(得分:0)

以下是github issue

主要原因是:angular1.2.x不支持jQuery2.0.x,而angular1.3.x也支持。

所以这里的解决方案将是:

  • angular1.2.x + jQuery 1.x
  • angular1.3.x + jQuery 2.x
  • angularjs only