ear*_*old 4 ember.js ember-rails
我有一个使用ember-railsgem 的rails应用程序.
我的网站有一部分不是在ember上,但是使用其中一个通过资产管道提供的车把模板会很方便.然而,似乎出现了一些问题.具体来说,我的模板返回如下:
Ember.TEMPLATES["views/wanderlists/templates/gallery"] = Handlebars.template(function anonymous(Handlebars,depth0,helpers,partials,data) { helpers = helpers || Ember.Handlebars.helpers; var self=this;
data.buffer.push("<h1>Gallery!</h2>\n"); });
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用此模板:
Ember.TEMPLATES["views/wanderlists/templates/gallery"]({})
TypeError: Cannot read property 'buffer' of undefined
Run Code Online (Sandbox Code Playgroud)
知道为什么生成的模板会遇到麻烦吗?
知道为什么生成的模板会遇到麻烦吗?
您不能将由ember Handlebars编译器编译的把手模板调用为正常的把手模板.他们期待一组完全不同的论点.具体来说,他们希望传递的(context, options)选项有一个data.buffer,输出将被写入.例如,如果您尝试:
Ember.TEMPLATES["views/wanderlists/templates/gallery"](this, {data: {buffer: 'NOT-A-BUFFER'}})
Run Code Online (Sandbox Code Playgroud)
控制台应输出 TypeError: Object NOT-A-BUFFER has no method 'push'
我的网站有一部分不是在ember上,但是使用其中一个通过资产管道提供的车把模板会很方便.
好.这很容易做到,而不是Ember.TEMPLATES直接访问.而是使用an Ember.View,并直接调用appendTo()进行渲染.例如:
App = Ember.Application.create({});
var view = Ember.View.create({
templateName: "views/wanderlists/templates/gallery",
name: "Bob"
});
view.appendTo("#message");
Run Code Online (Sandbox Code Playgroud)
这里的工作示例:http://jsfiddle.net/mgrassotti/VWmFq/1/
有关更多详细信息,请参阅Ember指南:定义视图
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |