【问题标题】:Angular $rootScope object property not accessibleAngular $rootScope 对象属性不可访问
【发布时间】:2015-11-07 16:22:21
【问题描述】:

我的$rootScope.globals 对象如下:

{
 currentUser: {
    id: "56309272279724c02b319392"
    name: "Özgür Adem"
    picture: "http://www.gravatar.com/avatar/c4ca4238a0b23452sdcc503a6f76829z?  d=retro"
    ptoken: "mFFa9l25HbB4fbh7"
    role: Object
 },
 unread: 0
}

当我像 console.log($rootScope.globals)console.log($rootScope.globals.currentUser) 这样打印到控制台时,一切都很好。

但是当我尝试打印console.log($rootScope.globals.unread)时,输出为undefined

为什么?我认为如果属性值等于undefined,它不应该在其他输出中被视为 0。我错了吗?

这里有什么问题?

【问题讨论】:

  • 我没有发现任何问题。它应该工作
  • @Sajeetharan 我想是这样,但不工作
  • @Furkan,在打印console.log($rootScope.globals) 时,您是否看到unread 的值为o
  • 尝试使用 Batarang,这在这些情况下非常有用。 chrome.google.com/webstore/detail/angularjs-batarang/…
  • @M22an 是的,当我打印console.log($rootScope.globals) 时,我可以看到未读的值,但是当我尝试console.log($rootScope.globals.unread) 时,我得到了undefined

标签: javascript angularjs rootscope


【解决方案1】:

我没有发现你的代码有任何问题,可能是你没有注入 $rootScope 但这里是有效的Plunker

控制器代码:

App.controller('TodoController',['$scope','$rootScope',function($scope,$rootScope){

   $rootScope.globals = {
 currentUser: {
    id: "56309272279724c02b319392",
    name: "Özgür Adem",
    picture: "http://www.gravatar.com/avatar/c4ca4238a0b23452sdcc503a6f76829z?  d=retro",
    ptoken: "mFFa9l25HbB4fbh7",
    role: Object
 },
 unread: 0
}
   console.log($rootScope.globals.unread) 
}]);

【讨论】:

  • 感谢您的回答,但如果我没有注入 $rootScope,我如何访问 $rootScope 对象中的其他属性? :)
  • 其他属性是什么意思?你想访问什么,只需 fork plunker 代码并根据需要更改变量
  • 在我提供的样本中打印未读,它显示为 0
猜你喜欢
  • 1970-01-01
  • 2011-09-11
  • 2018-12-18
  • 2021-11-08
  • 2021-03-05
  • 2021-11-09
  • 2022-01-22
  • 2021-03-12
  • 2021-07-03
相关资源
最近更新 更多