2016-06-28 116 views
2

我想將元素從一個div移動到另一個div。如何使用angularjs將元素從一個div移動到另一個div

比方說,例如DIV-A中有一個按鈕,我想將它移動到DIV-B中。

它可以在jQuery中很容易做到像

$("div-b").append('button'); 
$("div-a button").remove(); 

但我不能想到哪裏開始與AngularJs 1X。 連續有一系列10-20 div,我想將按鈕從一個div依次移動到另一個div。

+1

['angular.element'](https://docs.angularjs.org/api/ng/function/angular.element):「包裝了原始DOM元素或HTML字符串作爲jQuery元素。「 – str

+0

我認爲這可以單獨使用angular的jqlite來完成。 – YOU

回答

0

在角度數據被表示爲對象

<div ng-repeat="a in ctrl.a"></div> 
<div ng-repeat="b in ctrl.b"></div> 

vm.a = ['a1', 'a2']; 
vm.b = []; 

function move(obj) { 
    // find obj in vm.a and remove 
    // push obj in vm.b 
} 

那麼該視圖應被自動更新。

0

moveItem函數將所有子元素從一個div移動到另一個div。所有的事件和觀察者都可以在這個過程中生存下去,這些元素仍然會在移動之前的控制器中,就像DOM中的其他地方一樣。

需要的JQuery

var dom = angular.element($window.document); 
    var itemFrom = []; 
    var itemTo = []; 

    var moveItems = function (from, to) { 
     from.children().appendTo(to); 
    }; 

    var changeHeader = function() { 

     if (itemFrom.length === 0) { 
      itemFrom = dom.querySelectorAll("#itemFrom"); 
     } 
     if (itemTo.length === 0) { 
      itemTo = dom.querySelectorAll("#itemTo"); 
     } 

     moveItems(itemFrom, itemTo); 
    }; 
相關問題