我是ember的新手,我正试图弄清楚当select控件发生变化时如何渲染模板.
码:
App.LocationTypeController = Ember.ArrayController.extend({ selectedLocationType: null,locationTypeChanged: function() { //Render template }.observes('selectedLocationType') }); {{view Ember.Select contentBinding="model" selectionBinding="selectedLocationType" optionValuePath="content.id" optionLabelPath="content.name"}}
当locationType更改时,将在控制器中触发locationTypeChanged函数.
但是如何从那里将一些内容渲染到dom中呢? (this.render()?)…
解决方法
是的,你必须只使用this.render(),但这里的关键是它里面的选项.
App.LocationTypeController = Ember.ArrayController.extend({ selectedLocationType: null,locationTypeChanged: function() { var selectedLocationType = this.get('selectedLocationType'); this.send('changeTemplate',selectedLocationType); }.observes('selectedLocationType') });
在你的路线中采取行动
changeTemplate: function(selection) { this.render('template'+selection.id,{into:'locationType'}); }
并在locationType的模板中添加{{outlet}}.
{{view Ember.Select contentBinding="model" selectionBinding="selectedLocationType" optionValuePath="content.id" optionLabelPath="content.name"}} {{outlet}}
样品JSBin满足您的要求
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。