1

初期化メソッドとレンダリング メソッドの両方でいくつかのコードを実行する必要がありますが、私が理解しているように、Chaplin を使用している場合はそれらを直接変更することはできません。独自の初期化メソッドを定義すると、ルートが機能しなくなります。

afterInitialize() も試しましたが、オーバーライドすることを意図していないようです: https://github.com/chaplinjs/chaplin/issues/168#issuecomment-8015915

4

1 に答える 1

1

[...]しかし、私が理解しているように、チャップリンを使用している場合、それらを直接変更することはできません

拡張プロトタイプに適切に委任する限り、それらを直接変更できます。

質問にタグを付けていないので、javascript以下coffeescriptはそれぞれの 2 つの解決策です。まずはjavascriptです。拡張関数を明示的に呼び出す必要があることに注意してください。

var View = Chaplin.View.extend({
  initialize: function(options) {
    // Add code here ..

    // The below invokes the initialize function of the
    // base Chaplin.View class in the context of 
    // this class
    Chaplin.View.prototype.initialize.call(this, arguments);

    // .. or here
  }
});

次は ですcoffeescript。これにより、この種の作業が大幅に容易になります。

class View extends Chaplin.View
  initialize: ->
    // Add code here ..

    // The below auto-magically invokes the 
    // initialize method of the base class
    super

    // .. or here
于 2012-10-23T01:08:05.510 に答える