不想在Ember.Collection视图中使用任何标记(包括默认的div标记)

Mud*_*Ali 4 handlebars.js ember.js

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

我的把手文件

<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>
Run Code Online (Sandbox Code Playgroud)

我的查看文件

myCollectionView = Ember.CollectionView.extend({
  contentBinding: "myController.someArray",
  //someArray has say 4 elements
  itemViewClass: Ember.View.extend()
})
Run Code Online (Sandbox Code Playgroud)

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

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>
Run Code Online (Sandbox Code Playgroud)

更新的视图文件

myCollectionView = Ember.CollectionView.extend({
  contentBinding: "myController.someArray",
  //someArray has say 4 elements
  itemViewClass: Ember.View.extend({
    alertFunc: function(){
      alert("content did change");
    }.observes('content')
  })
})
Run Code Online (Sandbox Code Playgroud)

我希望只要更改其中一个editableField中的值,就会触发一个观察者,以便我可以更新数据库中的记录.我们可以使用{{each}}帮助器完成这件事吗?另外,arrayContentDidChange只会在数组长度发生变化时触发

Nat*_*ath 8

可以在Ember View中执行此操作

App.MyView = Ember.View.extend({
  tagName: ''
});
Run Code Online (Sandbox Code Playgroud)

  • `tagName:''`导致更改路由时出错.在路线变化时我的观点没有被破坏.(余烬1.2) (2认同)