Backbone.js 带胡子模板的Backbonejs。
我想用backbonejs和mustache模板做一个简单的应用程序。你能给我一个示例程序吗 新节点文件:Backbone.js 带胡子模板的Backbonejs。,backbone.js,Backbone.js,我想用backbonejs和mustache模板做一个简单的应用程序。你能给我一个示例程序吗 新节点文件: var Person = Backbone.Model.extend({ defaults: { name: 'Guest Worker', } }); var PersonView = Backbone.View.extend({ tagName: 'li', initialize: function(){ _.templ
var Person = Backbone.Model.extend({
defaults: {
name: 'Guest Worker',
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
initialize: function(){
_.templateSettings = {
interpolate: /\{\{(.+?)\}\}/g
};
this.render();
},
render: function(){
var template1 = _.template("Hello {{ name }}!");
this.$el.html( this.template1(this.model.toJSON()));
}
});
这是我的js代码。胡须模板引擎不能以这种方式工作。以下是文档中的一个小示例:
var view = {
title: "Joe",
calc: function () {
return 2 + 4;
}
};
// output will then contain processed html
var output = Mustache.render("{{title}} spends {{calc}}", view);
无论如何,我建议你用把手()代替胡子。它的语法几乎相同(它和Mustache有部分语法),但由于它的助手,它的功能更加强大
最后,您应该使用一些东西来预编译模板。您可以使用Handlebar的一个()或另一个,如早午餐或咕噜
[编辑]好的,让我们试着详细说明一下。。。我不会给你任何完整的例子(我现在没有,也不会教你任何东西),但我在上面发布的例子应该足以理解胡子的基本知识。
现在,您必须找到一种预编译模板的方法,下面是一个带有一些线索的答案:而在Backbone.js中,下划线模板是这样设置的:
template: _.template(...)
胡子模板的设置如下所示:
template: Mustache.render.bind(null,<template>)
//Mustache.render(template,view,[partials])
//a partial function is created because this.template should be a function
//<function>.bind() creates the partial function
模板:Mustache.render.bind(null,)
//渲染(模板,视图,[部分])
//创建部分函数是因为this.template应该是函数
//.bind()创建分部函数
不要这样做:
template: Mustache.to_html(<template>) // deprecated
// or
template: Mustache.to_html.bind(null,<template>) // deprecated
// Use Mustache.render() and not Mustache.to_html()
模板:Mustache.to_html()//已弃用
//或
模板:Mustache.to_html.bind(null,)//已弃用
//使用Mustache.render()而不是Mustache.to_html()
实际上,我必须在主干中使用Hogan模板。有可能吗?Hogan只是一个小胡子模板编译器。不幸的是,它与handlebar的模板不兼容。但使用无逻辑的模板引擎已经是一个不错的选择:)不,先生,只是我想用胡根的主干。。在这里可能吗?——————————————————————————————————————————————————————————————————————。是的,这是可能的。谢谢你,先生。。我是个新手。因此,我可以使用mustache和backbone获取任何示例并在呈现中使用它:var output=this.template(this.model.toJSON())代码>