Frage

Ich arbeite an der Konvertierung einer Single-Page-App in backbone.JS.Die Ansicht unten verwendet das Body-Tag als tagName – ich möchte also, dass die Ansicht den gesamten Inhalt der Seite einnimmt.Ich möchte keine Container-Divs oder andere Hacks verwenden.

var ThingView = Backbone.View.extend({  
    tagName : "body",
            ... 


    // Show the HTML for the view 
    render : function() {  
        console.log('Displaying thing')
        $(this.el).append('<h1>test</h1>');
        console.log('finished')
        console.log($(this.el))
        return this; // For chaining

Beim Rendern sehe ich

finished
[
<body>​
    <h1>​test​</h1>​
</body>​
]       

Aber nachdem ich das DOM untersucht habe, enthält der Textkörper keinen Text mehr.

War es hilfreich?

Lösung

tagName Gibt an, welches Tag Backbone zum Erstellen seines EL verwenden soll, wenn vom Konstruktor kein EL bereitgestellt wird.Das erstellte Element wird nicht automatisch in das DOM eingefügt.

Der einfachste Weg besteht wahrscheinlich darin, Ihre Ansicht mit der Einstellung el zu erstellen body :

new ThingView({el:'body'})

Andere Tipps

was nikoshr erklärt ist richtig.Hinzufügen dazu, dass der TagName mit TagName korrekt ist.Idealerweise sollten Sie jedoch EL-Element verwenden, das in der Backbone.js-Bibliothek als Element (EL) der Ansicht definiert ist.

Nachfolgend ist der ideale Code, den Sie dabei verwenden sollten. generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top