1

他の誰かが作成した ChaplinJS プロジェクトを持っていますが、フレームワークの特定の詳細について十分に知らされていません。ここに私が理解するのが難しいと思っているビットがあります:

listen: {
  'change model': 'render',
  'home:actionvideo mediator': 'show'
},

このコード ブロックは、いずれかのビュー JS ファイル内にあります。私はこのスタイルのイベント処理に精通しています。私の理解では、最初の部分 (「home:actionvideo」) はイベントの名前であり、2 番目の部分 (「mediator」) は要素セレクターです。コロンは、イベントに応答して実行する関数の名前です。

Chaplin.mediatorしかし、ここチャップリンの世界では、「メディエーター」は実際にはチャップリンのコアオブジェクトを指していると思います。これは正しいです?

そして、私がそれに取り組んでいる間、その最初の行はchange model何とか聞いていChaplin.modelますか?どれChaplin.model

4

1 に答える 1

1

はい、これは正しいです。

は次のメソッドをリッスンできます。

var MyView = Chaplin.View.extend({

  events: {
    // Listen to $ DOM events
    'click button': 'methodName',
    'change select#myid': 'methodName',
    ...
  },

  listen: {
    // Listen to Chaplin events
    'onAddedToDOM': 'methodName',
    ...

    // Listen to model events
    'change:foo model': 'methodName',
    // Listen to collection events
    'reset collection': 'methodName',
    // Custom mediator events (or Chaplin events, like router:route etc.)
    'pubSubEvent mediator': 'methodName',
    // The value can also be a function.
    'eventName': function() {alert('Hello!')}
  },

mediatorクラスを使用して、制御されたチャネルを介した直接通信を発行/購読します。

this.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);

またはあなたのビューの外:

require('chaplin');

Chaplin.mediator.publishEvent('pubSubEvent', ['Joe', 'Schmoe']);

イベント委任のソース コードは、https ://github.com/chaplinjs/chaplin/blob/master/src/chaplin/views/view.coffee#L299-308 にあります。

于 2015-03-25T23:30:05.473 に答える