Browse Source

optimize Observer.propagate

Evan You 11 years ago
parent
commit
d1dfa40b8b
1 changed files with 8 additions and 7 deletions
  1. 8 7
      src/observe/observer.js

+ 8 - 7
src/observe/observer.js

@@ -233,20 +233,21 @@ p.convert = function (key, val) {
  */
 
 p.propagate = function (event, path, val, mutation) {
-  this.emit(event, path, val, mutation)
+  if (this._cbs) {
+    this.emit(event, path, val, mutation)
+  }
   var parents = this.parents
   if (!parents) {
     return
   }
-  var parent, key, parentPath
+  if (path) {
+    path = Observer.pathDelimiter + path
+  }
   var i = parents.length
+  var parent
   while (i--) {
     parent = parents[i]
-    key = parent.key
-    parentPath = path
-      ? key + Observer.pathDelimiter + path
-      : key
-    parent.ob.propagate(event, parentPath, val, mutation)
+    parent.ob.propagate(event, parent.key + path, val, mutation)
   }
 }