在AngularJS中,jquery append方法似乎不适用于指令

时间:2013-04-21 00:34:23

标签: javascript jquery angularjs

我想实现我自己的ng-repeat版本。但不知怎的,我无法让它工作,因为jquery append方法似乎不起作用。

的script.js:

var app = angular.module("app", []);

app.directive("myRepeat", function() {
  return {
    restrict: 'E',
    compile: function(element, attrs) {
      var c = element.children()[0];
      console.log(c)
      for(var i=0; i<attrs.times; i++) {
        element.append(c);
      }
      return function(scope, element, attrs) {
        $(element).click(function() {
          console.log("hi");
        })
      }
    }
  }
})

的index.html:

<body ng-app="app">
    <my-repeat times="5"><p>hello world</p></my-repeat>
</body>

Code in use at plnkr.co

1 个答案:

答案 0 :(得分:1)

我在阅读了一些jquery代码后找到了答案。附加将在追加DOM元素时检查并删除重复项。我将c打包到dom列表中,并将for-loop中的append行更改为:

element.append(c.clone());

问题已经消失。