1

我有一个有序故事的索引:

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

我想获取引用的故事并将其传递给 angularFireCollection

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

这是来自 angularfire 的示例。这将获得所有故事,而不仅仅是索引中的故事。如何仅获取索引中的那些?

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

1 回答 1

0

Harry,查看FirebaseIndex以获取有关如何使用索引的示例。您使用 Firebase 所做的几乎所有工作都将涉及记录的索引或规范化(通过 id 匹配两组记录),因此这是一个很好的研究主题。

开箱即用的 AngularFire 无法使用索引。但是,可以提交一点想法和拉取请求以允许它直接与 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;
}

但这可能不是那么简单(是什么?)。这可能仅限于只读范围。要在两个方向上进行这项工作将需要更多的计划和腿部工作。

于 2013-04-25T22:46:30.863 回答