对自创的行动视图

时间:2012-07-02 15:45:00

标签: ember.js

如果我有一个带有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");
});​

1 个答案:

答案 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)。但同样,这应该只在极少数情况下使用。