3

で出力されたスコープ内のプロパティを表示できるのにconsole.log()、直後にアクセスしようとすると未定義になるのはなぜですか?

次のコードは、ディレクティブのコントローラー関数内にあります。

console.log($scope); //a scope object with a defined "output" property
console.log($scope.output); //undefined

最初のスコープからの出力は次のとおりconsole.log()です。

Scope {$id: "008", $$childTail: null, $$childHead: null, $$prevSibling: Scope, $$nextSibling: Scope…}
...
output: "3"
...

ほぼ同じことを求める別の質問があることは知っていますが、OPは@属性に分離スコープを使用していますが、私が知っている限り=では機能しません。observe

それから、私が少し混乱していることがもう一つあります。console.log()パラメータとして与えられたものの「スナップショット」ではないのはなぜですか?では、1行目にプロパティが表示され、2行目には未定義のプロパティが表示される可能性はありますか?

4

1 に答える 1

4

これは JavaScript の一般的な問題です。この回答は非常に役に立ちました。

console.log(this) を実行すると、オブジェクト自体が出力され、コンソールは参照 (必要に応じてポインター) を内部変数にリンクします。

$scope についても同様です。

于 2013-08-15T09:31:59.023 に答える