Ember:动态呈现模板
问题描述:
我有一个组件。这个组件的模板是“html数据”。这些html数据由用户组成并存储在数据库中。他们装载了ajax。Ember:动态呈现模板
通常,我们只是将组件绑定到html数据。不过,我的“html数据”也包含嵌入式的ember组件。 例如:
<html> do something {{button action="abc"}} </html>.
所以,我要做的就是动态地改变组件的模板。 我尝试通过更新模板。
this.template = Ember.Handlebars.compile(html);
this.rerender();
但是,组件不会用新模板重新渲染!
你有一个想法如何做到这一点?
预先感谢您
绿色
答
你只需要调用Ember.set方法而Ember的对象设定值。使用this.set('template', template)
而不是this.template = template
。
演示(输入新模板到输入和点击按钮):http://emberjs.jsbin.com/cuqofatisavu/1/edit?js,output
更新(THX MELC为commenting): 设置layout
属性,而不是template
如果您需要更改Ember.Component模板。
+1
我认为组件'布局'需要设置,http://emberjs.jsbin.com/jareci/1/edit – melc 2014-10-03 22:30:34
尝试将编译后的模板分配给模板列表,如:'Ember.TEMPLATES ['some-name'] = Em.Handlebars.compile('html here');',然后在您的视图中将其设置为是'templateName ='some-name'',就像你创建的一样。 – MilkyWayJoe 2014-10-03 18:13:39