2014-03-12 67 views
15

在一個指令中,我想創建一個div並將其附加到文檔中。我究竟做錯了什麼?如何創建元素並將其添加到文檔正文? (angular)

var mover = angular.element('<div></div>'); 

    mover.css({ 
     position: 'absolute', 
     top: '0px', 
     bottom: '0px', 
     left: '33px', 
     width: '50px', 
     background: 'blue', 
     zIndex: '2' 
    }); 

    $document.append(mover); 
+0

哪裏指令?你能發佈一個更完整的例子嗎? –

+0

重新考慮方法如何?將元素始終放在DOM中,並在需要時使用特定的className編譯/顯示它,以避免代碼中出現css。 –

回答

14

那麼,你仍然需要將你的元素附加到另一個元素上。嘗試是這樣的:

var body = $document.find('body').eq(0); 
body.append(mover) 
+3

jQuery +角? WTF!? – brabertaser19

+3

@ brabertaser19 - jQuery捆綁了jqLit​​e,一個精簡版的jQu​​ery,你可以用full-fat jquery覆蓋它,只需在你的'

7

我認爲這將是更好的方式來一個元素追加到身體

var mover = angular.element('<div></div>'); 

mover.css({ 
    position: 'absolute', 
    top: '0px', 
    bottom: '0px', 
    left: '33px', 
    width: '50px', 
    background: 'blue', 
    zIndex: '2' 
}); 

var body = angular.element(document).find('body').eq(0); 

body.append(mover) 
+3

angular.element(document)=== $ document; –

+0

@thinkwinwin你可以使用你喜歡的。兩者都是正確的。 –

34

也許更輕的重量的方法是:

angular.element(document.body).append(myElement); 
+0

如果我們使用$ rootScope.append(document.body),這個解決方案實際上是相同的。 document.body是我們可以參考當前文檔的角度唯一的東西。而如果你在angular之前包含jquery,那麼你可以使用angular.element('#someelement')。 –

相關問題