【发布时间】:2012-08-02 19:30:55
【问题描述】:
我知道Ember.View.views[someId] 可以找到视图的“实例”。是否有类似的方法通过字符串值查找视图“类”?我有一种情况,列表中项目的值决定了哪个视图类被实例化并填充到容器视图中。
【问题讨论】:
标签: ember.js
我知道Ember.View.views[someId] 可以找到视图的“实例”。是否有类似的方法通过字符串值查找视图“类”?我有一种情况,列表中项目的值决定了哪个视图类被实例化并填充到容器视图中。
【问题讨论】:
标签: ember.js
你真的需要切换视图类,因为渲染肯定会基于项目的状态吗?
我宁愿让视图的模板有条件,像这样:
App.ItemView = Ember.View.extend({
itemBinding: 'controller.content',
templateName: function () {
var kind = this.get('item.kind');
return '%@_item_view'.fmt(kind);
}.property('item.kind')
});
(在这里,为了更清楚,我在视图中为项目添加了别名)
然后,您需要与 kinds 一样多的模板。
例如:如果您在[valid, invalid] 中有kind 的值,您将有两个模板:valid_item_view.handlebars 和invalid_item_view.handlebars。
【讨论】:
App = Ember.Application.create();
App.TestView = Ember.View.extend({ ... });
App["TestView"].create();
【讨论】: