如何将ngRepeat内容复制到另一个分区中

How to copy ngRepeat content into another div?

本文关键字:另一个 分区 复制 ngRepeat      更新时间:2023-09-26

我使用angular列出了一个json文件,如下所示:

html:

<li ng-repeat="task in tasks">
    <h1>{{task.title}}</h1>
    <small>{{task.date}}</small>
    <p>{{task.details}}</p>
    <button ng-click="details($event)" data-title="{{task.title}}" data-date="{{task.date}}" data-details="{{task.details}}"></button>
</li>

js:

$scope.details = function(obj){
    var title = obj.target.getAttribute('data-title'),
        date    = obj.target.getAttribute('data-date');
    ...
}

我通过data-attributes传递所有内容,当我点击<button>时,它会调用ng-click,我通过纯javascript访问所有data-attributes,并创建一个<div>来包装这些内容。这种方法很好,但有没有一种更简单的方法可以通过角度获得这些值?

更简单、更恰当的角度方式,是的,只需通过ng-click函数表达式传递task,并从处理程序访问它,然后告别控制器的DOM访问(无论如何都很糟糕)和数据属性:-

<li ng-repeat="task in tasks">
    <h1>{{task.title}}</h1>
    <small>{{task.date}}</small>
    <p>{{task.details}}</p>
    <button ng-click="details(task)"></button>
</li>

$scope.details = function(task){
   console.log(task);
   //console.log(this.task);
}

Plnkr