在作用域对象中定义但不可访问的属性
Property defined in scope object but not accessible
为什么我可以在用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行它是未定义的呢?
这是JavaScript中的一个常见问题。我发现这个答案很有帮助。
当您运行console.log(this)时,您将输出对象本身和控制台将引用(指针,如果你喜欢的话)链接到内部变量。
同样适用于$scope。
相关文章:
- HTML5拖放访问属性
- 如何从保存在数组某个位置的JSON行访问属性
- webGL,javascript:尝试访问属性1中超出范围的顶点
- 访问属性的权限被拒绝'filepicker_comm_iframe'
- CanvasJS-访问变量-访问属性toString的权限被拒绝
- 错误:访问属性“”的权限被拒绝;文件”;
- 从javascript访问属性多端数组PHP
- 模块中的访问属性(CommonJS 样式)
- 从控制台 js 访问属性
- 相同的域,但仍收到“访问属性'文档'的权限被拒绝”
- 如何在 Javascript 中从函数本身或其副本访问属性
- 属性 Javascript 的访问属性
- 从 CoffeeScript 中类的属性中的方法访问属性的属性
- 通过 attrs.val 或 attrs.$set(attname, val)访问属性
- 使用 WinJS.Class 和访问属性
- Twitch TV API 访问属性名称值并更新它
- 如何访问属性名称中具有特殊字符的javascript对象的属性
- Cordova-不推荐尝试访问属性'userAgent'在非导航器对象上
- 具有私有方法的JS原型类不访问属性
- iFrame中的SelectionContext-访问属性“getSelection”的权限被拒绝