1

私はAngularJSアプリに取り組んでいます。オブジェクト (ディレクティブ リンク関数の attrs パラメーター) を console.log にすると、ブラウザーはパラメーター "editable" に対して一貫性のない結果を表示します (画像を参照)。Chrome では、プロパティは「zzz」と未定義の両方として評価されます (5 行目と 1 行目を参照)。Safari では出力の表示が異なりますが、console.log(object) では「編集可能」プロパティは「zzz」と表示されますが、console.log(object.editable) ではプロパティは定義されていません。

ヒントはありますか?

この問題は次のものに関連していると思います: console.log() が同じオブジェクト プロパティに対して矛盾する値を表示する

コンソールのバグ?

4

1 に答える 1

3

あなたのHTMLはこのようなものだと思います

<div my-directive editable="{{someScopeProperty}}"...></div>

console.log()リンク関数で呼び出していること。リンク関数が実行されるとき、補間された属性はまだ定義されていないため (補間された値を使用する$observe$watch、非同期に取得する必要があります)、undefined値をログに記録しようとすると取得されます。その後すぐに、値が定義され、Chrome は (個々の値だけでなく) オブジェクト全体をログに記録したコンソールで値 (これは実際には参照だと思います) を自動的に更新するようです。

于 2013-05-15T17:15:53.877 に答える