0

オブジェクト自体の中からプライベート(下線付き)プロパティを観察することは可能ですか?_view_layerがいつ設定されるかを知る必要があります。そうすれば、いくつかのjQueryでもハンドラーを適用できます。残念ながら、init()とrender()は本当に早いので、_view_layerは未定義です。残念ながら、_view_layerの観察はうまく機能していないようです。何ができるか教えてください。基本的に、別の可能な解決策があれば、私もそれを見ることができます

4

2 に答える 2

2

Sproutcoreでは、アンダースコアはプロパティ/メソッドがプライベートであるという規則にすぎません。実際にはプライベートではありません。

Sproutcoreでは、ビューにはライフサイクルメソッドがあります。これは興味深いかもしれません(ビューのSC 1.4.5コードから取得):

  • didCreateLayer: render()メソッドは新しいHTMLを生成するために使用されます。
    このメソッドをオーバーライドして、ビューの作成後に行う必要があるDOMで追加のセットアップを実行します。たとえば、イベントをリッスンする必要がある場合です。

SC 1.6以降では見方が大きく変わりましたが、didCreateLayerそれでも認識されていると思います。

于 2011-06-17T14:10:45.033 に答える
0
(function() {
  var value = obj._view_layer;
  delete obj._view_layer;
  var callback = function() {
    /* observation logic */
  }
  Object.defineProperty(obj, "_view_layer", {
    get: function() {
      return value;
    },
    set: function(val) {
      value = val;
      callback(val);
    },
    writable: true, 
    enumerable: true

  });
})();

ES5ブラウザが必要です。

デバッグにのみ使用することをお勧めします。.watchFirefoxでデバッグするときにも使用できます。

于 2011-06-16T21:22:35.280 に答える