2013-03-06 184 views
3

如何添加標籤名稱爲age的文本框,並使用backbone.js在模板中查看它?Backbone.js模板示例

<label> Age</label> 
<input type = "text" name = "age" value="12"/> 

我想將此作爲屬性添加到模型中並在模板中查看它。誰能幫忙?我知道backbone.js的基礎知識。

+0

我得到現在散盡想創建 – user2082957 2013-03-06 10:07:00

回答

2

不知道你想要什麼,但這裏是基本的例子:

var App = {}; 

App.Person = Backbone.Model.extend({}); 
App.View = Backbone.View.extend({ 
    el: "#form", 
    render: function() { 
     var html = _.template($('#form-tpl').html(), this.model.toJSON()); 
     this.$el.html(html); 
    } 
}); 

$(function() { 
    var person = new App.Person({ 
     name: 'Thomas', 
     age: 37 
    }), 
    app = new App.View({model: person}); 
    app.render(); 
}); 

HTML:可用

<script type="text/template" id="form-tpl"> 
    <label>Age:</label> 
    <input type="text" name="age" value="<%= age %>"> 
</script> 
<div id="form"></div> 

http://jsfiddle.net/CX3ud/

也有噸教程。祝你好運!

+0

感謝ü如此多的單選按鈕...它爲我工作.. – user2082957 2013-03-06 09:36:17

+0

off ... ...如何添加單選按鈕作爲屬性來模型和在模板中查看..標籤,文本框,下拉菜單太工作了我..與單選按鈕一起工作..你能幫我 – user2082957 2013-03-06 09:37:51

+0

我知道wat d函數toJSON()可以嗎?我可以在這裏做它? – user2082957 2013-03-06 09:55:45

1

模板不是內置於Backbone,這意味着您首先必須選擇模板系統。有很多很好的選擇,但我個人更喜歡Handlebars。你也可以選擇Mustache,(非常簡約的)Underscore模板函數,多個jQuery插件等。

一旦你選擇了一個庫,你一般會用它來編譯/編譯一個模板函數來生成HTML 。這裏有一個簡單的把手例如:

var template = Handlebars.compile('<span>Hello {{target}}</span>'); 

可以(可選)完成爲您查看代碼的一部分:

var MyView = Backbone.View.extend({ 
    template: Handlebars.compile('<span>Hello {{target}}</span>') 
}); 

一旦你的模板函數,通常需要傳遞一個值映射:

var resultText = template({target: 'World!'}); 

並取回渲染結果:

resultText == '<span>Hello World!</span>'; 

能夠適合您,在科博不過你想要的,但一個共同的模式是類似以下內容:

var MyView = Backbone.View.extend({ 
    template: Handlebars.compile('<span>Hello {{target}}</span>'), 
    render: function() { 
     var valueMap = this.model.toJSON(); 
     this.$el.html(this.template(valueMap)); 
    } 
}); 

// Usage: 
new MyView({ 
    el: '#someElement', 
    model: new Backbone.Model({target: 'World!'} 
)).render(); 
+0

你說得對,模板沒有內置到backbonejs中,但是backbonejs對內置模板的underscorejs有很強的依賴性。http://underscorejs.org/#template – 2014-05-14 15:02:22

+0

它的確如此,但是Underscore的模板功能僅限於一個非常簡單的功能。如果你只想把變量放入字符串'_中。模板「很棒,但是如果你想做一點邏輯,即使是一個」if「條件或者」for「循環,我認爲這對於任何嚴重的開發都是必要的,你需要考慮其他庫(如Handlebars) 。 – machineghost 2014-05-14 19:18:33