Ember.js:获取评估EmberJs.handlebar模板的HTML结果

Ember.js:获取评估EmberJs.handlebar模板的HTML结果,html,ember.js,handlebars.js,Html,Ember.js,Handlebars.js,我一直在寻找的是如何在评估模板时获得HTML 在车把中,这是非常向前的: var source = $("#entry-template").html(); var template = Handlebars.compile(source); var context = {title: "My New Post", body: "This is my first post!"} var html = template(context); 但是,有了灰烬,情况就不同了,我想知道如何才

我一直在寻找的是如何在评估模板时获得HTML

在车把中,这是非常向前的:

var source   = $("#entry-template").html();
var template = Handlebars.compile(source);
var context = {title: "My New Post", body: "This is my first post!"}
var html    = template(context); 
但是,有了灰烬,情况就不同了,我想知道如何才能做到这一点。现在,我只能想到:

var template = App.MyView.create() ;
var html = template.??????????
有什么建议吗?

这个怎么样:

var view = App.MyView.create();
var $elem;
Ember.run(function() {
    $elem = $('<div>');
    view.appendTo($elem);
});
var html = $elem.html();
var-view=App.MyView.create();
var$elem;
运行(函数(){
$elem=$('');
视图。附录($elem);
});
var html=$elem.html();
这个怎么样:

var view = App.MyView.create();
var $elem;
Ember.run(function() {
    $elem = $('<div>');
    view.appendTo($elem);
});
var html = $elem.html();
var-view=App.MyView.create();
var$elem;
运行(函数(){
$elem=$('');
视图。附录($elem);
});
var html=$elem.html();

自最初的回答以来,情况似乎发生了一些变化,在Ember中不再支持创建没有父容器的视图(请参见),并将抛出一个错误:
不再支持使用defaultContainer。[默认容器#查找]

要解决此问题,有两个选项:
this.createChildView(viewClass,viewAttributes)
this.container.lookup('view:view class')
然后在视图上设置属性

在这两者中,
createChildView
是最容易实现和更好的实践

考虑到这一点,本的答案看起来更像:

var view = this.createChildView(App.MyView);
var $elem;
Ember.run(function() {
    $elem = $('<div>');
    view.appendTo($elem);
});
var html = $elem.html();
var-view=this.createChildView(App.MyView);
var$elem;
运行(函数(){
$elem=$('');
视图。附录($elem);
});
var html=$elem.html();

自最初的回答以来,情况似乎发生了一些变化,在Ember中不再支持创建没有父容器的视图(请参见),并将抛出一个错误:
不再支持使用defaultContainer。[默认容器#查找]

要解决此问题,有两个选项:
this.createChildView(viewClass,viewAttributes)
this.container.lookup('view:view class')
然后在视图上设置属性

在这两者中,
createChildView
是最容易实现和更好的实践

考虑到这一点,本的答案看起来更像:

var view = this.createChildView(App.MyView);
var $elem;
Ember.run(function() {
    $elem = $('<div>');
    view.appendTo($elem);
});
var html = $elem.html();
var-view=this.createChildView(App.MyView);
var$elem;
运行(函数(){
$elem=$('');
视图。附录($elem);
});
var html=$elem.html();

为什么要这样做?你到底想达到什么目的?是一个JSFIDLE,它显示了我需要做什么。我认为,问题是视图的名称存储在一个变量中。为什么要这样做?你到底想达到什么目的?是一个JSFIDLE,它显示了我需要做什么。我认为,问题是视图的名称存储在一个变量中,我无法让它工作。不知何故,它返回一个空字符串。此外,如何传递上下文?是一个JSFIDLE,我在其中实现了您的解决方案!我相信那是因为追加并没有马上发生。我对答案进行了编辑,以显示如何立即进行追加。很好,它可以工作!我唯一不能工作的就是内容绑定。在这种情况下如何做到这一点?我已经进行了更新,以便显示
msg
部分。这就是你指的吗?thnx,这就是我需要的!!但不知何故,你的解决方案确实让人感觉像黑客:)我无法让它工作。不知何故,它返回一个空字符串。此外,如何传递上下文?是一个JSFIDLE,我在其中实现了您的解决方案!我相信那是因为追加并没有马上发生。我对答案进行了编辑,以显示如何立即进行追加。很好,它可以工作!我唯一不能工作的就是内容绑定。在这种情况下如何做到这一点?我已经进行了更新,以便显示
msg
部分。这就是你指的吗?thnx,这就是我需要的!!但不知何故,您的解决方案确实感觉像是一个黑客:)