【问题标题】:Access $firebaseObject value with variable instead of string使用变量而不是字符串访问 $firebaseObject 值
【发布时间】:2015-09-09 05:42:14
【问题描述】:

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

代码:

//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) 为空。

为什么?

【问题讨论】:

  • 字符串是否有任何前导/尾随空格?试试var itemkey = window.localStorage.getItem('fbid').trim();

标签: angularjs firebase angularfire


【解决方案1】:

我认为您可能正在尝试在结果可用之前对其进行控制台记录。 $firebaseObject 会延迟返回数据。你可以尝试做类似的事情

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多