1

Ember.jsには、データをビューにバインドしたり、ビューでトリガーされたイベント処理を設定したり、ルーターを使用したりするための優れたメカニズムがあります。しかし、私が必要とするのは、すでに作成されたHTMLコード(PHP、サーバー側)でトリガーされたイベントを処理できるようにすることです。簡単な例を示しましょう。私はこのコードを持っています:

<a id="login" href="#">Login</a>

Emberアプリケーションに入るには、このリンクのクリックをルーティング/処理できる必要があります。私はこれを行う方法を探していましたが、見つかりません。

これどうやってするの?

4

1 に答える 1

2

このリンクがEmber管理対象要素の子であるDOM要素内にある場合は、actionヘルパーを使用できます。

<a id="login" href="#" {{action doSomeStuff}}>Login</a>

このdoSomeStuffイベントはに送信されますEmber.Router。は、適切なルートでハンドラーを実装する必要があります。

...: Ember.Route.extend({

  doSomeStuff: function (router) {
    //...
  }
}),

リンクがアプリのスコープ外にある場合は、JQueryを使用してアプリ関連の要素にハンドラーを登録できます。

$('a#login').click(function () {
  App.router.transitionTo('the.route.path');
});

EmberアプリのApp.router初期化時に注入されるため、どこからでもアクセスできます。

ただし、ルーターの外部から移行することはベストプラクティスではありません。

最後になりましたが、transitionTo呼び出しにコンテキストを渡すこともできます。

于 2012-08-02T12:45:16.250 に答える