gpt4 book ai didi

ember.js - 不想在 Ember.Collection View 中使用任何标签(包括默认的 div 标签)

转载 作者:行者123 更新时间:2023-12-04 06:01:40 24 4
gpt4 key购买 nike

标题可能听起来很愚蠢,请考虑以下代码

我的 Handlebars 文件

<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()
})

我希望它在 #main-table 中呈现 4 个表,而是将它们呈现在 #main-table 之外,因为它将我的 itemViewClass 包含在默认的 div 标签中。我只能更改 tagName 属性,但不能将其设置为 nil 我猜,这个问题有什么技巧吗?

The JSFiddle

回应第一个答案
{{each}} 的问题在于,我使用的是 EditableField,如下所示:
(只是为了听起来清晰,可编辑字段是在双击时将 div 更改为文本字段并在聚焦时返回 div 标签的字段,使用 ember 构建的简单小部件)

更新的 Handlebars 文件
<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>

更新的 View 文件
myCollectionView = Ember.CollectionView.extend({
contentBinding: "myController.someArray",
//someArray has say 4 elements
itemViewClass: Ember.View.extend({
alertFunc: function(){
alert("content did change");
}.observes('content')
})
})

我希望在可编辑字段之一中的值发生更改时触发观察者,以便我可以更新数据库中的记录。我们可以使用 {{each}} 助手来完成这件事吗?此外,arrayContentDidChange 只会在数组长度改变时触发

最佳答案

AFAIK,在 DOM 中不能没有“真实存在”的 Ember.View,但是如果您不想添加充当容器的 View (这里是 {{each}} ),您可以使用 Ember.CollectionView 助手。

tagName 设置为 null 不起作用, see Ember.View source code

模板:

<script type="text/x-handlebars">
<table id="main-table">
<tr>
<td>
<h1>Some Text</h1>
</td>
{{#each App.content}}
<td>
<table><tr><td>{{name}}</td></tr></table>
</td>
{{/each}}
</tr>
</table>
</script>​

代码:
App = Ember.Application.create();
App.content = [{name: "foo"}, {name: "bar"}, {name: "baz"}];

this JSFiddle

关于ember.js - 不想在 Ember.Collection View 中使用任何标签(包括默认的 div 标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12193985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com