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);