在附加的html中访问ng-repeat重复数据

时间:2014-05-14 05:52:54

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

当使用自定义指令单击该项时,我将一些HTML附加到模型项中。

我的代码:

<div appenddata>
    <div ng-repeat="model in models">
        <label ng-bind="model.name"></label>
    </div>
<div>

directive('appenddata', function($compile) {
   // click handlers
   $(element).after("<p ng-bind='model.name'></p>);
   $compile(html)(scope);
});

是否可以在此附加的html中访问模型项数据?

2 个答案:

答案 0 :(得分:1)

与评论中提到的一样,你真的不应该自己将数据注入DOM。如果您需要更改DOM中显示的数据量,请在ng-repeat上使用过滤器。

此外,ng-repeat中的250个项目不足以减慢页面速度,除非每个项目都进行了一些非常繁重的处理。我建议使用类似Angular Batarang的内容来分析您的应用程序,看看实际上导致它变慢的原因。

答案 1 :(得分:0)

是的,有可能,我最近问了一些类似的东西:

Create div with angular variable as attribute value

建议使用此代码:

angular.element($("#canvas")).injector().invoke(function($compile) {
  var scope = angular.element($("#canvas")).scope();
  var compiledImg = $compile('<img id="editImage" ng-src={{ImageToEdit}}>')(scope);
  $("#canvas").replaceWith(compiledImg);
});