Search code examples
javascriptpolymerpolymer-1.0polymerfire

Count child nodes inside a dom-repeat


I am trying to count child nodes inside a template dom-repeat. I am pulling data with firebase-query.

Inside a dom-repeat I want to display the number of child nodes of proposals object. The image shows the data structure in firebase, the dom-repeat loops all jobs.

enter image description here

   <template is="dom-repeat" indexAs="index" id="joblist" items="{{jobs}}" as="job">
    <div class="job-container" on-transitionend="_getData">
     <paper-card class="cards" heading="{{job.name}}" elevation="0">
        <paper-ripple id="ripple" recenters></paper-ripple>
        <div class="card-content">{{job.description}}</div>
      <div class="card-actions">
       <div class="horizontal justified">
        <iron-label class="g_lbl green">
            &nbsp;{{job.budget}}&nbsp;&nbsp;
        </iron-label>
        <iron-label class="g_lbl grey">
            &nbsp;[[_computeproposals(job.proposals)]] Propuestas&nbsp;
        </iron-label>
       </div>
      </div>
     </paper-card>
    </div>
   </template>

I am passing the proposals data to the function _computeproposals(job.proposals), here I need to return the number of childnodes in proposals:

    _computeproposals:function(proposals){
        //should return the number of proposals here
        console.log(proposals);
            return <<number of child nodes in proposals>>;
        }

console.log(proposals): enter image description here


Solution

  • It's seems like an object so it does not have .length, use the Object.keys for this:

    Object.keys(proposals).length;