2013-04-25 28 views
1

我已下令故事的指標:從指標陣列獲取一個火力點列表

{ 
    index: ["storyA", "storyB", "storyC"] 
} 

我想引用的故事,並把它傳遞到angularFireCollection

{ 
    index: ["storyA", "storyB", "storyC"], 
    stories: { 
    "storyA" : {}, 
    "storyB" : {}, 
    "storyC" : {}, 
    "storyD" : {}, 
    "storyE" : {} 
    }, 
} 

這是例子從篝火。這將得到所有的故事,而不僅僅是索引中的那些故事。我如何得到索引中的那些?

app.controller('stories', ['$scope', '$timeout', 'angularFireCollection', 
    function($scope, $timeout, angularFireCollection) { 
    var url = 'https://example.firebaseio.com/stories'; 
    $scope.stories = angularFireCollection(url); 
    } 
]); 
+0

只是過濾它們嗎? – lucuma 2013-04-25 22:40:27

+0

是的,過濾可能是你最好的選擇,沒有簡單的方法只能獲取索引中的那些。或者,您可以爲每個故事創建一個angularFire或angularFireCollection的實例。例如:$ scope.storyA = angularFireCollection('https://example.firebaseio.com/stories/storyA'); – Anant 2013-04-25 22:44:25

+0

@lucuma我想讓索引工作。這是使用Firebase非常重要的一部分。 – Harry 2013-04-25 23:30:16

回答

0

Harry,請查看FirebaseIndex瞭解如何使用索引的示例。幾乎所有使用Firebase進行的工作都將涉及索引或記錄規範化(通過id匹配兩組記錄),因此這是一個值得研究的重要主題。

索引不會與AngularFire開箱即用。然而,有一點思想和pull請求可以提交允許它直接與FirebaseIndex工作(只是通過在FirebaseIndex而不是URL,並在AngularFire構造,設置this._fref到FirebaseIndex而不是new Firebase(url)

例如:

function AngularFire($q, $parse, url) { 
    this._q = $q; 
    this._parse = $parse; 
    this._initial = true; 
    this._remoteValue = false; 
    this._fRef = typeof(url) === 'string'? new Firebase(url) : url; 
} 

但它可能不是那麼簡單(是什麼?),這可能會被限制爲只讀範圍要在兩個方向上這項工作將需要相當多的規劃和腿部。

+0

感謝您的FirebaseIndex!現在我只是試圖單向。我不認爲只是設置這個.fref是足夠的。傳入FirebaseIndex會收到錯誤消息:'錯誤:新的Firebase失敗:第一個參數必須是有效的Firebase網址,路徑不能包含「。」,「#」,「$」,「[」或「]」 「試圖弄清楚。 – Harry 2013-04-25 23:29:33

+0

Harry,您需要對AngularFire進行修改;上述內容並不意味着是一種就地解決方案,而是一種如何實現自己想要的想法。查看我的編輯。 – Kato 2013-04-26 02:47:51

+0

我確實有工作,非常感謝! – Harry 2013-04-26 02:51:23