【发布时间】:2012-03-17 04:11:46
【问题描述】:
我想即时加载其他模板。有可能吗?
【问题讨论】:
我想即时加载其他模板。有可能吗?
【问题讨论】:
我正在使用 requirejs 和文本插件来动态加载车把模板。
r.js 优化器会将 handlerbar 模板编译为文本文件,可以使用 requirejs 甚至 ajax 轻松加载
【讨论】:
您可以在Ember.TEMPLATES注册新模板。然后它们将可供查看。
摘自我的代码(jQuery Ajax 处理程序):
success: function(data) {
$(data).filter('script[type="text/x-handlebars"]').each(function() {
templateName = $(this).attr('data-template-name');
Ember.TEMPLATES[templateName] = Ember.Handlebars.compile($(this).html());
});
}
就是这样。
【讨论】:
get 调用的结果中检索模板内容,其中包含 HTML 实体,因为它们会以普通的标准页面响应形式到达。
我只是在找同样的东西,正要和下面的 sn-p 玩一玩
信用:github上的borismus https://gist.github.com/2165681
<script>
/*
* Loads a handlebars.js template at a given URL. Takes an optional name, in which case,
* the template is added and is reference-able via templateName.
*/
function loadTemplate(url, name, callback) {
var contents = $.get(url, function(templateText) {
var compiledTemplate = Ember.Handlebars.compile(templateText);
if (name) {
Ember.TEMPLATES[name] = compiledTemplate
} else {
Ember.View.create({ template: compiledTemplate }).append();
}
if (callback) {
callback();
}
});
}
</script>
【讨论】: