0

アクションを持つボタンを持つ単純なテンプレートがあり、このテンプレートを使用して残りのビューを作成する場合、ビューの関数をアクションのターゲットにするにはどうすればよいですか。

例: 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");
});​
4

1 に答える 1

2

問題はあなたのappend呼び出しです:Ember.View#appendは引数を取りません。コードを参照してください。

最終的なアプリケーション/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特定の位置に要素を挿入できますが、これはアプリケーションのメイン ビューにのみ必要です。したがって、使用できますEmber.View#appendTo(target)。ただし、これはまれなケースでのみ使用する必要があります。

于 2012-07-02T16:23:29.280 に答える