2014-01-20 36 views
0

我遇到了綁定到firebase中的對象的問題。我使用AngularFire,在我的角度控制器的代碼如下所示:AngularJs中的Firebase綁定

var firebaseCourse = new Firebase("https://torid-fire-1683.firebaseio.com/course-header/course-1"); 
$scope.course = $firebase(firebaseCourse); 

這併成功連接到火力點,並返回我的數據。但是,在返回的對象時,它被嵌入在另一個對象是這樣的:

{"-JDlZpk38i9YsSRoH0ce":{"description":"Course Description","name":"Course One"}} 

因此,當我綁定到{{course.name}}在我看來,這是行不通的,因爲屬性嵌入在$ scope.course綁定的對象中的另一個對象內。

我該如何解決這個問題?

+0

你如何添加數據?隨機ID在使用'$ add'時生成,對於維護分佈式列表很有用。因此,您不必自己創建課程名稱,如「course-1」,而是讓Firebase處理它。或者,如果您想自己生成課程標識,請不要在寫入數據時使用'$ add'並使用'$ save'。 – Anant

+0

我通過HTTP REST API添加它們,因爲沒有用於C#的客戶端。 –

+0

HTTP POST將推送到一個列表。使用PUT,它不會生成新的ID。 –

回答

0

您所看到的正是Firebase發回的內容。所以你的代碼實際上工作。我相信所有你需要添加的是: $ scope.course = $ firebase(firebaseCourse)。$ asArray();

如果$ asArray()仍然沒有給你你想要的,你可以迭代對象並創建和數組。所以,在你看來,你可以這樣做:

在您的視圖(HTML) - 代替 - {{課程}} ----> {{getCourses(課程)}}

&你控制器

$scope.getCourses = function(courses) { 
    var array = []; 
    for(var key in courses) { 
     array.push(courses[key]); 
    } 
    return array; 
} 

這樣你將有一個數組或多個課程而不是嵌套對象。這不會影響由angularFire提供的3路綁定

希望這有助於!謝謝