繁体   English   中英

如何在Ember.js中呈现预编译的Handlebars模板?

[英]How to render precompiled Handlebars template in Ember.js?

直接使用车把:

var template = Handlebars.compile("<div>template source</div>");
var html = template();

但是,当使用带有Ember.js的预编译模板时,这将无法工作:

var template = Ember.TEMPLATES["myTemplate"];
template(); // throws an error

同样,如果使用Handlebars.compile编译模板,则不会从Ember对象正确读取属性,因为未调用get

您使用Em.Handlebars.compile('template stuff here') (而不是Handlebars.compile)来渲染模板,因为Ember扩展了Handlebars库以根据此处Ember.Handlebars文档自动使用get()方法。

用Ember编译器编译的模板很难单独调用。

像普通的Handlebars模板一样,它们是函数,但是它们没有进行字符串连接,而是将其输出发送到Ember.RenderBuffer (调用push )。

模拟该对象是不够的,因为它们还需要引用Ember.View (通常会调用它们),并且属性语法{{mustache}}内部创建Ember._HandlebarsBoundView (如http:// emberjs中所述)。 com / api / classes / Ember._HandlebarsBoundView.html )。

一种解决方案是使用普通的Handlebars编译器,并将属性作为普通的JS对象传递给生成的函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM