2

ユーザーの行動に反応する複数のビューが欲しいのですが。ですから、私の目標を達成するには、グローバルなカスタムイベントが正しいと思いました。もっと良いものがあれば、私は他のアイデアに満足しています。

ドキュメントによると、Ember.jsアプリケーションに次のようなカスタムイベントを追加できるはずです。

Mobile = Em.Application.create({
  customEvents: {
    "customevent": "customevent"
  }
});

残念ながら、ドキュメントはそこで止まり、イベントを発生させて何かをバインドする方法を教えてくれません。それで、それを自分で試して、それを「聞く」べきビューを作成しました。

Mobile.HeaderView = Em.View.extend({
  templateName: "header",
  customevent: function() {
    return console.log("Custom event has been fired!");
  }
});

最後に、コンソールでイベントを発生させました。

$.event.trigger("customevent")

残念ながら、何も起こりません。

誰かが私が間違っていることを教えてもらえますか?または、私が欲しいものを手に入れるためのより良い方法があれば?

4

1 に答える 1

1

Em.Bindingルーク・メリアがスライドで示しているよう に、問題を解決しました: http ://www.lukemelia.com/devblog/archives/2012/08/23/architecting-ember-js-apps/

別のStackOverflowの質問からのコード例:

App.FailController = Em.ObjectController.extend({
    content: null,
    my: null,
    myBinding: "App.router.myController", // <-- works
});
于 2012-11-20T21:09:05.010 に答える