0

我正在使用 firebase 和 polymer 来构建应用程序,并且我有一个使用 firebase-query 元素获得的数据。我想重新排序数据,以便它首先显示新数据,所以我想我可以使用模板标签上的 sort 属性按降序对它的键进行排序,但它没有按预期工作。

     <firebase-query
  id="questionQuery"
  path="/questions"
  limit-to-last="15"
  data="{{questions}}">
</firebase-query>

模板看起来像这样的方法:

        <template is="dom-repeat" items="[[questions]]" sort="_computeSort" as="question"><p>[[question.body]]</p></template>

在我的元素定义中,我有这个:

  _computeSort: function(a, b) {
    console.log(a.__firebaseKey__);
    if (a.__firebaseKey__ == b.__firebaseKey__) {
      return 0;
    }
    return a.__firebaseKey__ > b.__firebaseKey__ ? -1 : 1;
  },

这是行不通的。到控制台的日志输出只是一堆 undefindes,所以问题应该存在,但我怎样才能访问每个问题的键?

4

1 回答 1

0

好的,我有一个分析器

$key 是访问由 firebase 生成的密钥的表达式,因此只需将排序函数更改为:

    _computeSort: function(a, b) {
    if (a.$key == b.$key) {
      return 0;
    }
    return a.$key > b.$key ? -1 : 1;
  },

实际上,我刚刚从Polymer 1.0: Sorting dom-repeat复制了代码,这就是我最终得到像 _firebasekey__ 这样的代码的方式。

于 2017-05-19T10:14:01.230 回答