Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 带胡子模板的Backbonejs。_Backbone.js - Fatal编程技术网

Backbone.js 带胡子模板的Backbonejs。

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

我想用backbonejs和mustache模板做一个简单的应用程序。你能给我一个示例程序吗

新节点文件:

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())