Angularfire的$value是什么?



我只是想用angularjs和angularfire从我的firebase中得到一个值…有问题。

Inside my controller:

$scope.componentStatus = syncData("components/-JI_JgHxm0TEUEVjADJn/status");
console.log($scope.componentStatus);

返回一个包含$value的对象。

但是,当我尝试:

console.log($scope.componentStatus.$value);

我得到Undefined作为结果

指针吗?我觉得这应该是一个简单的任务,所以我只是错过了一些东西。

版本使用
https://cdn.firebase.com/v0/firebase.js
Angularjs - 1.2.7
Angularfire 0.6.0

<<p> 数据结构/strong>
components : {
    "-JI_dFtOxE5k1ZFeZu8a" : {
      "experience" : "-JJ8jT0oJA3vYOeBNpq5",
      "name" : "Name of Component",
      "status" : "-JJ8hQcUb0_ip9Hoqcqq",
      "theme" : "-JJ8mD9tEsBw3a3g9Wz6"
    },
}

这是对异步过程的一个简单误解。在你调用$value的时候,数据还没有从服务器获取。

尝试在$on('loaded',…)回调中调用:

$scope.componentStatus = syncData("components/-JI_JgHxm0TEUEVjADJn/status");
$scope.componentStatus.$on('loaded', function() {
    console.log($scope.componentStatus.$value);
});

请注意,如果你真正想做的是在DOM中显示这个,那么就不必担心数据何时到达——Firebase和Angular会自己解决这个问题:

<div>When it arrives, it will appear here: {{componentStatus.$value}}</div>

下面是演示这些概念的小提琴:http://jsfiddle.net/katowulf/e7WFf/

和另一个显示相同的想法与$bind:http://jsfiddle.net/katowulf/4J356/

从angularFire 0.8.0开始,您还可以将$firebase对象视为类似于以下内容的承诺:

var data = syncData("components/-JI_JgHxm0TEUEVjADJn/status").then(function() {
    console.log(data.$value);
});

相关内容

  • 没有找到相关文章

最新更新