我遇到了与firebase中的对象绑定的问题。我正在使用AngularFire,我的Angular控制器中的代码如下所示:
var firebaseCourse = new Firebase("https://torid-fire-1683.firebaseio.com/course-header/course-1");
$scope.course = $firebase(firebaseCourse);
这确实成功连接到firebase并返回我的数据。但是,当返回对象时,它会嵌入到另一个对象中:
{"-JDlZpk38i9YsSRoH0ce":{"description":"Course Description","name":"Course One"}}
因此,当我在视图中绑定到{{course.name}}时,它不起作用,因为属性嵌入在$ scope.course绑定的对象中的另一个对象中。
我该如何解决这个问题?
答案 0 :(得分:0)
您所看到的正是firebase发回的内容。所以你的代码实际上正在运行。我相信你要添加的是: $ scope.course = $ firebase(firebaseCourse)。$ asArray();
如果$ asArray()仍然没有给你你想要的东西,你可以迭代对象并创建和数组。因此,在您看来,您可以这样做:
在您的视图中(html) - 而不是 - {{courses}} ----> {{getCourses(课程)}}
&安培;在你的控制器
$scope.getCourses = function(courses) {
var array = [];
for(var key in courses) {
array.push(courses[key]);
}
return array;
}
这样您将拥有一个或多个数组而不是嵌套对象。这不会影响angularFire提供的3路绑定
希望这有帮助!感谢