使用变量而不是字符串访问$ firebaseObject值

时间:2015-09-09 05:42:15

标签: angularjs firebase angularfire

我需要为字符串分配一个变量,并将该变量传递给$ firebaseObject中的Firebase查询。但是,当我尝试这个时,firebaseObject为null。我尝试直接将字符串放入其中并且它可以工作,但我不想要它。

代码:

//var itemkey='-JyO7Zsgsucf5ESttJwt';
var itemkey=window.localStorage['fbid'];-------> string: '-JyO7Zsgsucf5ESttJwt'
console.log(typeof itemkey); ------------------> string
$scope.galphoto = $firebaseObject(ref.child(itemkey));
console.log($scope.galphoto) ------------------> null

当我打电话

$scope.galphoto = $firebaseObject(ref.child(itemkey));

使用itemkey='-JyO7Zsgsucf5ESttJwt'

然后console.log($scope.galphoto)被正确显示。但是,当我使用我真正想要使用的东西时,

window.localStorage['fbid']

然后console.log($scope.galphoto)为空。

为什么?

1 个答案:

答案 0 :(得分:1)

我认为您可能正在尝试使用console.log结果,然后才能使用它。 $ firebaseObject以一些延迟返回数据。您可以尝试执行类似

的操作
$scope.galphoto = $firebaseObject(ref.child(itemkey));
$scope.galphoto.$loaded().then(function () {
    console.log($scope.galphoto);
}

您应该看到预期的结果,因为您正在等待承诺响应。它可以帮助您更好地了解如何获得所需的结果。