說,在我的控制器的地方,我有:是否可以在AngularJS中插入HTML元素到文檔中?
$scope.elements = [document.getElementById('a'), document.getElementById('b')];
和我的a
和b
ID的文檔中的某個地方有有效元素。
我想直接在HTML模板中插入這些元素,而無需編寫JavaScript。我嘗試了以下,並沒有奏效。
<div ng-repeat="e in elements">
{{ e }}
</div>
這可能嗎?關於我在做什麼
更多信息:
我有內容,我想幾列之間驅散(其中通過AJAX加載自己的數據幾個自定義指令元素)。內容元素的列將會改變,列的數量也會改變。
<column-resizer options="columnResizerOptions">
<content1></content1>
<content2></content2>
...
</column-resizer>
爲columnResizer
模板目前看起來是這樣的:
<ng-transclude></ng-transclude>
<div ng-repeat="column in columns">
<div ng-repeat="element in column">
{{ element }}
</div>
</div>
columnResizerOptions
是關於如何調整列寬和在哪裏列中的內容放置信息。在columnResizer
的link
函數中,我使用transclude
來獲取content1
-contentn
,並將它們放置在與它們應該位於的列對應的數組中,這些列在我的模板(上面)中通過。
爲什麼這甚至是必要的?任何時候你使用'document.getElementById()',你都試圖對DOM進行編程。角度不需要以這種方式進行開發。HTML內容如何在不知情的情況下進入這些元素,或者在頁面呈現時能夠被服務器告知?這裏沒有東西加起來。 – Claies
你可以更多地展示你實際上正在做什麼,以及爲什麼你不能在數據上使用'ng-repeat'而不是呈現的HTML?就目前來看,這絕對是一個XY問題。見http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378 – Claies
我試圖保持簡單的問題,但也許我沒有包含足夠的信息。我的重複是在指令模板中。我的指令元素包含transcluded元素,我用'transclude()'函數在'link()'中獲取並分散到一組數組中,我希望每個數組都顯示在不同的'ng-repeat' div'。我將用這些信息更新原始問題。 –