我需要为字符串分配一个变量,并将该变量传递给$ 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)
为空。
为什么?
答案 0 :(得分:1)
我认为您可能正在尝试使用console.log结果,然后才能使用它。 $ firebaseObject以一些延迟返回数据。您可以尝试执行类似
的操作$scope.galphoto = $firebaseObject(ref.child(itemkey));
$scope.galphoto.$loaded().then(function () {
console.log($scope.galphoto);
}
您应该看到预期的结果,因为您正在等待承诺响应。它可以帮助您更好地了解如何获得所需的结果。