angularjs将元素/指令从一个列表移动到另一个列表而不重新初始化

时间:2016-02-19 22:23:25

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

让图像我们有两个元素列表,其中每个元素本身都是一个指令。

#include <iostream>
using namespace std;


int main() {
int c = 1;
while (c< 10){
    cout << c <<"|";
    c++;
    int i=1;
    while (i< 10){
        cout << i * c << '\t';
        i++;


    }
    cout << endl;
}

cin.clear();
cin.ignore();
cin.get();

return 0;
}

我想将列表2中的元素“Y”移动到列表1 而不重新初始化指令。因此,我想简单地将内容/指令从列表2移动到列表1。

我做了一个简单的例子来说明我的意思:http://jsfiddle.net/HB7LU/24171/

从示例中可以看出,控制台在移动元素后再次打印'init:Y'。但我不希望这样。我只是想让它感动。

如何在不重新初始化指令的情况下执行此操作?

template.html

List 1:
 - A 
 - B
 - C
List 2:
 - X
 - Y
 - Z

app.js

<div ng-controller="MyCtrl">
  <h2>List 1:</h2>
  <ul>
    <li ng-repeat="entry in list1">
      <span my-directive="entry"></span>
    </li>
  </ul>
  <h2>List 2:</h2>
  <ul>
    <li ng-repeat="entry in list2">
      <span my-directive="entry"></span>
    </li>
  </ul>
  <button ng-click="move()">
    Move 'Y' to List 1
  </button>
</div>

1 个答案:

答案 0 :(得分:0)

由于您的指令在dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(delay))) { // step one dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(delay))) { // step two ... } } 内部使用,因此每个项目的添加都会创建一个新的范围,因此每次都会初始化指令控制器。但是,您可以反过来执行此操作,即将列表绑定到指令并在模板中进行ng-repeat。请参阅Updated Fiddle。如果这对您有用,请告诉我。