如果我有一个带有Action的简单模板,并使用此模板创建一个ember View,我该如何让该操作以View为目标。
实施例: http://jsfiddle.net/Krutius/DxsXz/
句柄/ HTML :
<div id="content">
<div id="main"></div>
</div>
<script type="text/x-handlebars" data-template-name="test">
<button class="btn btn-primary" {{action go}}>Suchen</button>
</script>
的JavaScript :
$(function() {
App = Em.Application.create({
rootElement: "#content"
});
Em.View.create({
templateName: 'test',
go: function() {
alert: "go";
}
}).append("#main");
});
答案 0 :(得分:2)
问题在于您append
来电:Ember.View#append
不接受任何参数,请参阅code。
我不知道最终的应用程序/ html应该是什么样的,所以有几个答案可以解决你的问题。最简单的方法是将按钮内嵌到应用程序的模板中,请参阅http://jsfiddle.net/pangratz666/vY9PE/:
<强>车把强>:
<script type="text/x-handlebars" data-template-name="test">
<div id="content">
<div id="main">
<button class="btn btn-primary" {{action go}}>Suchen</button>
</div>
</div>
</script>
<强>的JavaScript 强>:
App = Em.Application.create({});
Em.View.create({
templateName: 'test',
go: function(evt) {
console.log('go', evt);
}
}).append();
Ember.js IS 虽然可以在特定位置插入元素,但这只应用于应用程序的主视图。所以你可以使用Ember.View#appendTo(target)
。但同样,这应该只在极少数情况下使用。