diff --git a/src/lib/template/dom-repeat.html b/src/lib/template/dom-repeat.html index 63c548a328..f9cb0a3e59 100644 --- a/src/lib/template/dom-repeat.html +++ b/src/lib/template/dom-repeat.html @@ -369,11 +369,31 @@ } else { // items.* // slice off 'items.' ('items.'.length == 6) var subpath = change.path.slice(6); + this._checkItemChanges(subpath); this._forwardItemPath(subpath, change.value); this._checkObservedPaths(subpath); } }, + _checkItemChanges: function(path) { + var paths = path.split('.'); + if (paths[0] === 'length') { + return; + } + if(this._sortFn || this._filterFn) { + // if an entire item has changed + if(paths.length === 1 && paths[0].indexOf('#') === 0) { + this._needFullRefresh = true; + if (this.delay) { + this.debounce('render', this._render, this.delay); + } else { + this._debounceTemplate(this._render); + } + return; + } + } + }, + _checkObservedPaths: function(path) { if (this._observePaths) { path = path.substring(path.indexOf('.') + 1);