Emberjs。如何获取点击的相关数据?

时间:2013-06-20 13:01:40

标签: javascript ember.js

我是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()那样做但是我还没有找到一种生成动态id的方法在Ember.TextField

那么有没有办法在Ember.TextField中动态生成ID,或者我应该考虑采用不同的方式?

由于

2 个答案:

答案 0 :(得分:1)

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

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

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

然后你的动作就是将对象作为参数:

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

同时查看documentation

答案 1 :(得分:1)

点击视图会生成'click' event on that viewevent.context将是绑定到该视图的模型。

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

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

Ember应该保持所有绑定。如果你发现自己

相关问题