AngularJs中的Firebase绑定

时间:2014-01-20 23:57:56

标签: firebase

我遇到了与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绑定的对象中的另一个对象中。

我该如何解决这个问题?

1 个答案:

答案 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路绑定

希望这有帮助!感谢