0

正如标题所示,我正在尝试使用 firebase-query 元素来查询一组键,作为回报,我应该从查询中获取每个键的一堆对象。这可以在 java 或 swift 中轻松完成,但是当涉及到聚合物元素时,我无法弄清楚。

我曾尝试将 firebase-query 放在 dom-repeat 中,但似乎不起作用。我还尝试更改它似乎没有启动对新键的查询的等于键。

请参阅下面的代码:

<!doctype html>
<html>
<head> 
</head> 
<body>
  <template is="dom-bind" id="scope">

       <!-- .......other code -->
      <!-- condKey is from the array I need to loop -->
      <!--through and array comes from another query-->

      <firebase-query
        id="myQuery"
        app-name="ProjectName"
        order-by-child="childName" 
        path = "/nodeKey"   
        equal-to=[[condKey]]  
        data="{{results}}">
      </firebase-query>

    <!-- ***data comes from another query -->

    <div id="listContainer">       
      <template is="dom-repeat" items=[[data]] as="item">    
        <div class="item">
        <div class$="{{_computeItems(item.key)}}"></div>
          <template is="dom-repeat" items={{results}} as="myresult">
            <div>[[myresult.key]]</div>
          </template>
        </div>    
      </template>
    </div>  


    <script> 
    scope._computeItems =  function(key) {
          console.log("key of query is: " , key); 
          scope.condKey = key ;                 
        }; 
    </script>
    </template> 

    <!-- .......other code -->
    </body>
4

3 回答 3

0

您将使用 js Promise.all来实现这一点。您将每个 XHR/.once() 推送到一个数组中,然后针对它运行 Promise.all。

于 2017-02-17T00:06:29.423 回答
0

将值传递给 a new-element,使用模板 is="dom-repeat" 将解决您的问题。

  <div id="listContainer">       
      <template is="dom-repeat" items=[[data]] as="item">    
        <div class="item">
        <div class$="{{_computeItems(item.key)}}"></div>

          <template is="dom-repeat" items={{results}}>
            <new-element results="{{results}}"></new-elements>
          </template>

        </div>    
      </template>
    </div>  

新元素

      <template is="dom-repeat" items={{results}} as="myresult">
        <div>[[myresult.key]]</div>
      </template>
于 2017-02-17T13:53:17.343 回答
0

所以我试图通过使用 Polymer 数据绑定和嵌套子节点来实现这一点,每个子节点都执行自己的查询以获得所需的内容,那时我还是个菜鸟。以下是如何通过 Polymer 数据绑定和声明性方式轻松完成此操作。

<parent-element>
  <template is="dom-repeat" items="[[keyArrays]]">
        <child-element key="[[item]]"></child-elements>
  </template>
</parent-element> 

然后在每个子元素中通过子元素定义中的 firebase-query 进行查询:

<dom-module id="child-element">

    <template>
     ....

     <firebase-query path="/path/[[key]]" data="{{_queryResult}}></firebase-query>

     <element-to-bind-result-with data="[[_queryResult]]"></element-to-bind-result-with>

    </template>
      ....
<dom-module>

希望它可以帮助某人。

于 2017-11-08T16:07:08.890 回答