如何在渲染管道之外使用模板
How can I use templates outside of the render pipeline
我有一个事件需要在应用程序外部的 space 中插入一个模板。使用 Ember-CLI,我们拥有所有这些非常棒的预编译模板,所以我想弄清楚如何使用它们。
(Ember-CLI 0.0.42, Ember 1.7.0)
我发现我可以像这样得到预编译的模板函数:
import TheTemplate from 'app/templates/the-template';
但是,如果我按照 Handlebars 网站上的说明调用它,则会出现错误。
var context = { button: "OK" };
var str = TheTemplate(context);
Uncaught TypeError: Cannot read property 'push' of undefined
那么使用这些模板的正确方法是什么?
这个问题,以不同的方式提出,可能已经得到回答:
Compile Ember template string and running it programmatically, without an Ember application?
同时使用模板和视图,类似这样的东西在另一个视图中似乎可以工作:
externalView = this.get("container").lookup("view:the-template");
externalView.setProperties({ button: "OK" });
externalView.appendTo($("#here"));
...然后记得稍后 destroy() 或 destroyElement()。
我有一个事件需要在应用程序外部的 space 中插入一个模板。使用 Ember-CLI,我们拥有所有这些非常棒的预编译模板,所以我想弄清楚如何使用它们。
(Ember-CLI 0.0.42, Ember 1.7.0)
我发现我可以像这样得到预编译的模板函数:
import TheTemplate from 'app/templates/the-template';
但是,如果我按照 Handlebars 网站上的说明调用它,则会出现错误。
var context = { button: "OK" };
var str = TheTemplate(context);
Uncaught TypeError: Cannot read property 'push' of undefined
那么使用这些模板的正确方法是什么?
这个问题,以不同的方式提出,可能已经得到回答:
Compile Ember template string and running it programmatically, without an Ember application?
同时使用模板和视图,类似这样的东西在另一个视图中似乎可以工作:
externalView = this.get("container").lookup("view:the-template");
externalView.setProperties({ button: "OK" });
externalView.appendTo($("#here"));
...然后记得稍后 destroy() 或 destroyElement()。