Skip to content

Commit

Permalink
Fixes #3065: Add dom-repeat.renderedItemCount property
Browse files Browse the repository at this point in the history
  • Loading branch information
Arthur Evans committed Nov 20, 2015
1 parent 4d45842 commit b589f70
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/lib/template/dom-repeat.html
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,17 @@
*/
delay: Number,

/**
* Count of currently rendered items after `filter` (if any) has been applied.
* If "chunking mode" is enabled, `renderedItemCount` is updated each time a
* set of template instances is rendered.
*
*/
renderedItemCount: {
type: Number,
notify: true
},

/**
* Defines an initial count of template instances to render after setting
* the `items` array, before the next paint, and puts the `dom-repeat`
Expand Down Expand Up @@ -438,6 +449,8 @@
// `item` may not be sufficient if the pooled instance happens to be
// the same item.
this._pool.length = 0;
// Set rendered item count
this.renderedItemCount = this._instances.length;
// Notify users
this.fire('dom-change');
// Check to see if we need to render more items
Expand Down
2 changes: 2 additions & 0 deletions test/unit/dom-repeat.html
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ <h4>x-repeat-chunked</h4>
test('basic rendering, downward item binding', function() {
var stamped = Polymer.dom(configured.root).querySelectorAll('*:not(template)');
assert.equal(stamped.length, 3 + 3*3 + 3*3*3, 'total stamped count incorrect');
assert.equal(configured.$.repeater.renderedItemCount, 3, 'rendered item count incorrect');
assert.equal(stamped[0].itemaProp, 'prop-1');
assert.equal(stamped[0].computeda, 'prop-1+itemForComputedA');
assert.equal(stamped[0].indexa, 0);
Expand Down Expand Up @@ -282,6 +283,7 @@ <h4>x-repeat-chunked</h4>
CustomElements.takeRecords();
var stamped = Polymer.dom(configured.root).querySelectorAll('*:not(template)');
assert.equal(stamped.length, 2 + 2*3 + 2*3*3, 'total stamped count incorrect');
assert.equal(configured.$.repeater.renderedItemCount, 2, 'rendered item count incorrect');
assert.equal(stamped[0].itemaProp, 'prop-1');
assert.equal(stamped[0].indexa, 0);
assert.equal(stamped[13].itemaProp, 'prop-3');
Expand Down

0 comments on commit b589f70

Please sign in to comment.