1

我是 emberjs 的新手,我正在尝试仅使用 jquery 来复制练习。我似乎做不到。也许我应该以不同的方式处理以下内容?

我有一个看法:

{{#each clip}}
    <div class="large-3 columns">
       <div {{action panel_clicked uuid}} class="panel" style="overflow:hidden; height:200px;">
            {{view Ember.TextField valueBinding="notes" type='hidden'}}
            {{view Ember.TextField valueBinding="uuid" type='hidden'}}
            {{{chunk}}}
        </div>
     </div>
 {{/each}}

我想要做的是当我点击class='panel'我得到uuid并使用它来获取隐藏的文本字段时。

通常我只会有一个隐藏字段的自定义 id,比如id='notes_[uuid]'在 jquery 中我可以做类似的事情$('#notes_' + uuid).val()但是我还没有想出一种方法来在Ember.TextField.

那么有没有办法动态生成 idEmber.TextField或者我应该以不同的方式思考它?

谢谢

4

2 回答 2

1

您可以将对象传递给动作。

{{#each clip}}
  <div {{action panel_clicked this on="click"}} class"panel">
  ...
  </div>
{{/each}}

wherethis指的是每个循环中的当前对象。

然后您的操作只会将对象作为参数:

panel_clicked: function(clip) {
  alert(clip.get('someAttr')); // just to show it works
  ... // what you want to do
}

也请查看文档

于 2013-06-20T15:10:52.337 回答
1

单击视图将在该视图上生成“单击”事件。将event.context是绑定到该视图的模型。

App.ActionPanelView = Ember.View.extend({
  click: function(evt) {
    var model = evt.context;
    ....
  }
});

{{#each clip}}
    {{view App.ActionPanelView valueBinding=clip}}
{{/each}}

Ember 应该维护所有的绑定。如果你发现自己

于 2013-06-20T15:16:33.783 回答