@@ -73,7 +73,7 @@ exports.$delete = function (key) {
73
73
* Watch an expression, trigger callback when its
74
74
* value changes.
75
75
*
76
- * @param {String } exp
76
+ * @param {String|Function } expOrFn
77
77
* @param {Function } cb
78
78
* @param {Object } [options]
79
79
* - {Boolean} deep
@@ -82,11 +82,17 @@ exports.$delete = function (key) {
82
82
* @return {Function } - unwatchFn
83
83
*/
84
84
85
- exports . $watch = function ( exp , cb , options ) {
85
+ exports . $watch = function ( expOrFn , cb , options ) {
86
86
var vm = this
87
- var watcher = new Watcher ( vm , exp , cb , {
87
+ var parsed
88
+ if ( typeof expOrFn === 'string' ) {
89
+ parsed = dirParser . parse ( expOrFn ) [ 0 ]
90
+ expOrFn = parsed . expression
91
+ }
92
+ var watcher = new Watcher ( vm , expOrFn , cb , {
88
93
deep : options && options . deep ,
89
- user : ! options || options . user !== false
94
+ user : ! options || options . user !== false ,
95
+ filters : parsed && parsed . filters
90
96
} )
91
97
if ( options && options . immediate ) {
92
98
cb . call ( vm , watcher . value )
0 commit comments