4
标题可能听起来很蠢,考虑下面的代码不想使用任何标签(包括默认div标签)在Ember.Collection查看
我的手把文件
<table id="main-table">
<tr>
<td>
<h1>Some Text</h1>
</td>
{{#collection myCollectionView}}
<td>
<table>
<tr><td>{{view.someProperty}}</td></tr>
</table>
</td>
{{/collection}}
</tr>
</table>
我查看文件
myCollectionView = Ember.CollectionView.extend({
contentBinding: "myController.someArray",
//someArray has say 4 elements
itemViewClass: Ember.View.extend()
})
我希望它渲染#主表中的4个表,它,而不是使他们的#main-外因为它将我的itemViewClass
包含在默认的div
标记中。我只能更改tagName
属性,但不能将其设置为零我想,这个问题的任何破解?
在响应于第一答案 与{{每个}}是,我使用如下的EditableField问题:
(只是要清晰,可编辑的字段是其中一个改变一个div上双击文本框&回焦点了div标签,简单的小工具使用烬)内置
更新把手文件
<table id="main-table">
<tr>
<td>
<h1>Some Text</h1>
</td>
{{#collection myCollectionView}}
<td>
<table>
<tr><td>{{view.myEditableField valueBinding="view.content"}}</td></tr>
</table>
</td>
{{/collection}}
</tr>
</table>
更新视图文件
myCollectionView = Ember.CollectionView.extend({
contentBinding: "myController.someArray",
//someArray has say 4 elements
itemViewClass: Ember.View.extend({
alertFunc: function(){
alert("content did change");
}.observes('content')
})
})
我想只要在editableField的一个值变为观察员开火,这样我就可以在数据库中更新我的记录。我们可以使用{{each}}帮手完成这件事吗?另外,arrayContentDidChange只会在数组长度发生变化时触发
?也许你可以用一个简单的' –
来代替它。你仍然可以访问子视图/父视图,就像这个JSFiddle一样:http://jsfiddle.net/ZsrWe /。如果它仍然不够,也许你将不得不使用'Ember.ContainerView'。但个人而言,我认为您的模板并非真正干净,例如,“CollectionView”应该更多地用作'
'或直接用作'@ sly7_7:[jsFiddle for Editable Field](http://jsfiddle.net/ZsrWe/3/) –
回答
AFAIK,在DOM中没有“真实存在”的情况下不能有Ember.View,但是如果您不想添加一个帮助器,则可以使用
{{each}}
帮助器视图充当一个容器(这里是一个Ember.CollectionView
)。设置
tagName
至null
不起作用see Ember.View source code。模板:
代码:
见this JSFiddle。
来源
2012-08-30 12:03:36 louiscoquio
Fine louis,+1。感谢您的时间帮助人们:) –
@louiscoquio:感谢您的回复,但请参阅最新的问题,对不起,我没有在 –
这是可能的,你可以发布myEditableFieldView的代码来做到这一点的灰烬查看
来源
2013-11-06 15:50:41 Nath
之前添加这个细节也是错误的作品。但不是空的。我认为这是因为这个问题最初是被问到的。 –
'tagName:'''在更改路线时会导致错误。我的观点在路线改变时不会被破坏。 (ember 1.2) – guleria
在烬1.9.1 - tagName:''的作品,但将其设置为false不。 – Nathan
相关问题