我有一个模板作为页面的一部分,如下所示:
<script type="text/x-handlebars" data-template-name="listbeer">
<table>
{{#each content}}
{{#view "DHApp.BeerrowView"}}
<tr>
<td><button>{{name}}</button></td>
<td>{{brewery}}</td>
</tr>
{{/view}}
{{/each}}
</table>
</script>
我还有两个视图,一个封装表,另一个封装行。当我单击按钮时,只有父(整个表)视图点击处理程序被调用(下面的那个表示父选择点击)。我无法调用子视图处理程序。任何想法,为什么我尝试了各种各样的东西,无法到达任何地方?
视图代码如下所示:
DHApp.BeerrowView = Ember.View.extend({
click: function(evt) {
alert("ClickableView was clicked!");
}
});
DHApp.ListbeerView = Ember.View.extend({
templateName: 'listbeer',
click: function(evt) {
alert("parent picked up view");
}
});
由于
答案 0 :(得分:2)
您需要按以下方式定义BeerrowView
:
DHApp.BeerrowView = Ember.View.extend({
tagName: 'tr',
click: function(evt) {
alert("ClickableView was clicked!");
}
});
和模板:
<script type="text/x-handlebars" data-template-name="listbeer">
<table>
{{#each content}}
{{#view "DHApp.BeerrowView"}}
<td><button>{{name}}</button></td>
<td>{{brewery}}</td>
{{/view}}
{{/each}}
</table>
</script>
之后的原因是,如果您没有定义标记名称,视图会额外添加div
。
有关详细信息,请参阅ember view guide。