2014-03-12 3 views
15

In einer Direktive möchte ich ein Div erstellen und an das Dokument anhängen. Was mache ich falsch?Wie kann man ein Element zum Dokumentkörper erstellen und anhängen? (Winkel)

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

Wo ist die Richtlinie ? Können Sie ein vollständigeres Beispiel veröffentlichen? –

+0

Wie wäre es, den Ansatz zu überdenken? Setzen Sie das Element immer in das DOM und kompilieren/zeigen Sie es bei Bedarf mit einem bestimmten Klassennamen an, um das css im Code zu vermeiden. –

Antwort

14

Nun, Sie müssen Ihr Element noch an ein anderes Element anhängen. so etwas wie dies versuche:

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

jQuery + eckig? WTF !? – brabertaser19

+3

@ brabertaser19 - jQuery kommt zusammen mit jqLite, einer abgespeckten Version von jQuery. Sie können dies mit vollfetten jQuery überschreiben, indem Sie es einfach vor angular in Ihre '

7

Ich denke, der bessere Weg sein wird, ein Element in dem Körper

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

angle.element (Dokument) === $ document; –

+0

@thinkwinwin Sie können verwenden, was Sie möchten. Beide sind richtig. –

34

Vielleicht ein geringeres Gewicht Ansatz wäre anzufügen:

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

Diese Lösung ist eigentlich gleich, wenn wir $ rootScope.append (document.body) verwenden. document.body ist das Einzige aus eckigen, das wir auf das aktuelle Dokument beziehen können. Wenn Sie jedoch jQuery vor eckig einfügen, können Sie wie angular.element ('# irgendein Element') verwenden. –

Verwandte Themen