我有一个组件。该组件的模板是“html数据”。 这些html数据由用户组成并存储在数据库中。它们装有ajax。
通常,我们只是使用html数据绑定组件。但是,我的“html数据”还包含嵌入式ember组件。 例如:
<html> do something {{button action="abc"}} </html>.
所以,我要做的是动态更改组件的模板。 我尝试更新模板。
this.template = Ember.Handlebars.compile(html);
this.rerender();
但是,组件不会使用新模板重新渲染!!
你知道怎么做吗?
提前谢谢
绿色
答案 0 :(得分:3)
您只需在设置Ember对象的值时调用Ember.set方法。使用this.set('template', template)
代替this.template = template
。
演示(在输入中键入新模板并单击按钮):http://emberjs.jsbin.com/cuqofatisavu/1/edit?js,output
更新(对commenting而言):
如果需要更改Ember.Component模板,请设置layout
属性而不是template
。