2016-04-03 1 views
-3

Ich habe eine mainView.js und mainView.html.So verwenden Sie direkt die _.template Methode in HTML Backbone & Underscore

alles HTML ist in mainView.html platziert, und die Codierung innerhalb der HTML wird weiter zunehmen. Was ich dachte ist, den HTML-Code in verschiedene HTML-Dateien zu teilen.

und ich schrieb die _.template Methode für meine Untervorlagen direkt in meiner mainView.html. aber es funktioniert nicht.

Dies ist, was ich versucht:

MainView.html

<div id="section"> 
<div id="one"><%_.template('one.html')%></div> 
<div id="two"><%_.template('two.html')%></div> 
<div id="three"><%_.template('three.html')%></div> 
</div> 

MainView.js

define(['jquery', 'underscore', 'backbone', 'text!mainView.html'], function($, _, Backbone, mainViewHTML) { 
    var mainViewIn = Backbone.View.extend({ 
    render : function(){ 
    var that = this; 
    var tmpl = _.template(mainViewHTML); 
    that.$el.html(tmpl); 
    } 
}); 
return mainViewIn; 
}); 
+2

* "funktioniert nicht." * Ist keine sinnvolle Problemstellung. Wo ist die Variable 'mainViewHTML' definiert? Irgendwelche Fehler geworfen? – charlietfl

+0

@charlitfl: Ich habe eine Definitionsmethode, die ich hier hinzugefügt habe. –

+0

Und wir sollen raten, was das ist? Bitte schauen Sie durch [mcve] – charlietfl

Antwort

-1

sollten Sie required 'one.html', 'two.html', ' three.html 'in MainView.js. Übergeben Sie es an Vorlage und dann verwenden Sie es.Andernfalls Vorlage weiß nicht, was one.html und alle.

-Code sollte wie folgt aussehen MainView.js

define(['jquery', 'underscore', 'backbone', 'text!mainView.html', 'text!one.html', 'text!two.html', 'text!three.html'], function($, _, Backbone, mainViewHTML, one, two, three) { 
    var mainViewIn = Backbone.View.extend({ 
    render : function(){ 
    var that = this; 
    var template = mainViewHTML({one: one, two: two, three: three}); 
    var tmpl = _.template(mainViewHTML); 
    that.$el.html(tmpl); 
    } 
}); 

Rückkehr mainViewIn; });

MainView.html

<div id="section"> 
<div id="one"><%_.template({one})%></div> 
<div id="two"><%_.template({two})%></div> 
<div id="three"><%_.template({three})%></div> 
</div> 

Bitte verzeiht Syntaxfehler in Vorlage, wenn es irgendeine.

+0

Was ist das: '{1}' ...?! Das ist ein Syntaxfehler in Javascript. –

+0

Es ist die Art der Abholung der Daten, die an die Vorlage übergeben werden, wenn Sie den Lenker verwenden. –

+0

Der Code verwendet keinen Lenker, sondern Unterstreichung –