0

存在しないプロパティを参照した場合に Ember に警告またはエラーを記録させる方法はありますか? 現在、ハンドルバー テンプレートにバインドされているプロパティの名前のスペルを間違えた場合、警告は表示されず、何も表示されず、どのプロパティが間違っているかを見つけるのが難しい場合があります。

私は LOG_BINDINGS を有効にしていますが、これは多少は役に立ちますが、関連のないものがたくさんあります。

4

2 に答える 2

1

私が見つけた一般的な組み込みデバッグはありませんが、独自のものを追加するメカニズムがあります。

Ember.Object は、「get」呼び出しが undefined を返すたびにメソッド「unknownProperty」を呼び出します。このメソッドに console.warn を追加して、プロパティをログに記録できます。ドキュメントでは、カスタムの抽象メソッドの型処理を行う方法として説明しています。

http://emberjs.com/api/classes/Ember.Observable.html#method_get

Ember.Object.reopen(
  unknownProperty: (property) ->
    unless property is 'App' or property is 'Ember'
      console.warn "Unknown property #{property} in #{@toString()}"
)

グローバル名前空間 'App' と 'Ember' のフィルタリングに注意してください。グローバル プロパティへのすべての呼び出しは引き続きこのインターフェイスを通過しますが、私たちが気にかけているのは、それらが赤ニシンであるということです。

残念ながら、Ember.Object 自体を再度開いてこれを行おうとすると、特に EventManager クラスで、これが常に発生しているように見えるため、気にしないジャンクが大量に発生します。これを Ember.ArrayController、Ember.ObjectController、およびすべてのモデルの継承元である Model クラスに適用することで、これを回避しました。

「高さ」ではなく「高さ」を誤ってハンドルバーに入力するたびに、空白のページではなくコンソールに適切な警告メッセージが表示されるようになりました

本番ソリューションでは、これをビルドのある種の「デバッグ」オプションにリンクしたいと思うでしょう。

于 2013-07-18T13:25:33.850 に答える