Javascript 在Ember 2项目中使用预编译的把手模板
我需要在我的余烬项目中使用一些预编译的把手模板,以及我的普通组件和模板。我已使用Javascript 在Ember 2项目中使用预编译的把手模板,javascript,ember.js,handlebars.js,htmlbars,Javascript,Ember.js,Handlebars.js,Htmlbars,我需要在我的余烬项目中使用一些预编译的把手模板,以及我的普通组件和模板。我已使用app.import()将预编译模板加载到我的ember cli build.js文件中。预编译模板现在显示在handlebar.templates对象中,我将其映射到应用声明和应用初始化之间的我的Emberapp.js文件中的Ember.templates[“预编译模板”] 当我检查Ember.TEMPLATES对象时,预编译的模板作为表单函数(上下文,选项)的函数存在,这与作为对象的其他模板不同 当我尝试使用预编
app.import()
将预编译模板加载到我的ember cli build.js
文件中。预编译模板现在显示在handlebar.templates
对象中,我将其映射到应用声明和应用初始化之间的我的Emberapp.js
文件中的Ember.templates[“预编译模板”]
当我检查Ember.TEMPLATES
对象时,预编译的模板作为表单函数(上下文,选项)
的函数存在,这与作为对象的其他模板不同
当我尝试使用预编译模板时,什么都没有显示。有什么想法吗
编辑1:我说的是小ui模板,而不是整个路线模板,我愿意牺牲绑定。我找到了一种方法,可以使用助手将把手模板转换为字符串并创建文档片段
import Ember from 'ember';
export function helper(data/*, hash*/) {
let precompiledTemplateFunction = Handlebars.templates[data[0]];
return fragmentFromString(precompiledTemplateFunction());
}
function fragmentFromString(strHTML) {
return document.createRange().createContextualFragment(strHTML);
}
export default Ember.Helper.helper(helper);
用法:{{helper'预编译模板'}}
我正在ember-cli-build.js文件app.import('vendor/path/to/precompiled/template')中导入模板代码>
我没有处理通过帮助器传入属性的问题,但我认为这并不难。我找到了一种方法,可以使用帮助器将把手模板转换为字符串并创建文档片段
import Ember from 'ember';
export function helper(data/*, hash*/) {
let precompiledTemplateFunction = Handlebars.templates[data[0]];
return fragmentFromString(precompiledTemplateFunction());
}
function fragmentFromString(strHTML) {
return document.createRange().createContextualFragment(strHTML);
}
export default Ember.Helper.helper(helper);
用法:{{helper'预编译模板'}}
我正在ember-cli-build.js文件app.import('vendor/path/to/precompiled/template')中导入模板代码>
我还没有处理过通过helper传递属性的问题,但我认为这并不难。您是如何编译模板的?您是否使用了与ember.js相同版本的ember-template-compiler.js?您是如何编译模板的?您是否使用了与ember.js相同版本的ember-template-compiler.js?