在内部Ember.View
是否有可能做这样的事情:
App.ExperimentalView = Ember.View.extend({
templateName: 'experimental/table',
click: function (event) {
var $target = $(event.target).closest('tr'),
anotherView = Ember.View.create({
templateName: 'experimental/appendableRow'
};
anotherView.appendTo($target);
}
});
仅当单击元素时才添加<tr/>
在模板中定义的 HTML 标记?Handlebars
首先我想使用 anEmber.ContainerView
但后来我重新阅读了文档并偶然发现了这句话:
Ember.ContainerView 的 DOM 表示的 HTML 内容将只是其子视图的呈现 HTML。
这导致我假设我需要一个Ember.ContainerView
代表我的表格的子视图来保存真实的<table/>
,它再次具有子视图以及另一个Ember.ContainerView
代表我的表格主体而不实际呈现<tbody/>
看起来有点奇怪的元素的对象恕我直言。
编辑
这种方法的另一个好处可能是您将能够声明 a Ember.Mixin
,它不仅提供方法/属性,还提供自己的Handlebars
模板。因此,可以说,FilterableViewMixin
使用 HTML 标记为过滤器和所有内容创建类似 a 的东西,您只需要实现和重置过滤器条目。