0

我想記錄使用ng-repeat填充的div的內容,有點像在特定時刻拍攝該div的快照,以便我不必編寫更多代碼來保存數據。角度考慮DOM快照

link:function(scope,element,attrs)scope.game = game;

  var $element = $(element), 
      $clone = $element.children().clone(); 

      scope.$watch('someVariable',function(array){ 
       if (array[array.length - 1] === scope.id){ 
        record($compile($clone)(scope)); 
        console.log($compile($clone)(scope)); 
       } 
      },true); 

     } 

我一直想這樣的代碼的變化,但不能得到任何運氣,我從來沒有能夠深拷貝

任何建議對NG-重複產生的div的內容我如何在特定時間點複製div的動態生成內容?

+2

爲什麼你需要這樣做?我確定有更好的方法。你的數據應該產生dom輸出,然後你可以複製數據。 – 2013-03-27 21:12:10

+0

因爲堅持數據帶來了太多的麻煩,它需要很多更多的代碼,並且數據沒有其他用途 – 2013-03-27 22:11:03

+0

但是,您已經有數據放入ngRepeat中,首先生成了DOM。你爲什麼不能使用它? – 2013-03-27 23:45:25

回答

1

如果您有數據以ng-repeat顯示,您已經擁有模型中的數據,您只需將該數據的快照保存到範圍中的其他對象。你應該操縱控制器中的數據,而不是直接訪問DOM,這在angularjs中是一個不容忽視的問題。然後,如果您需要重複使用Div,只需製作一個指令即可知道如何呈現您在模型中保存的快照。

+0

上再次使用jQuery,正如我在評論中所說的那樣,在我需要的模式中顯示數據之前,存在相當多的複雜性。我不想浪費CPU資源來重新計算所有模式並顯示它們。那麼我正在操縱指令中的DOM,這是可以接受的權利? – 2013-03-28 14:43:01