@@ -73,7 +73,7 @@ exports.$delete = function (key) {
7373 * Watch an expression, trigger callback when its
7474 * value changes.
7575 *
76- * @param {String } exp
76+ * @param {String|Function } expOrFn
7777 * @param {Function } cb
7878 * @param {Object } [options]
7979 * - {Boolean} deep
@@ -82,11 +82,17 @@ exports.$delete = function (key) {
8282 * @return {Function } - unwatchFn
8383 */
8484
85- exports . $watch = function ( exp , cb , options ) {
85+ exports . $watch = function ( expOrFn , cb , options ) {
8686 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 , {
8893 deep : options && options . deep ,
89- user : ! options || options . user !== false
94+ user : ! options || options . user !== false ,
95+ filters : parsed && parsed . filters
9096 } )
9197 if ( options && options . immediate ) {
9298 cb . call ( vm , watcher . value )
0 commit comments