我是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,或者我应该考虑采用不同的方式?
由于
答案 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 view。 event.context
将是绑定到该视图的模型。
App.ActionPanelView = Ember.View.extend({
click: function(evt) {
var model = evt.context;
....
}
});
{{#each clip}}
{{view App.ActionPanelView valueBinding=clip}}
{{/each}}
Ember应该保持所有绑定。如果你发现自己