@@ -62,7 +62,7 @@ exports.$delete = function (key) {
6262 * Watch an expression, trigger callback when its
6363 * value changes.
6464 *
65- * @param {String } exp
65+ * @param {String|Function } expOrFn
6666 * @param {Function } cb
6767 * @param {Object } [options]
6868 * - {Boolean} deep
@@ -71,11 +71,17 @@ exports.$delete = function (key) {
7171 * @return {Function } - unwatchFn
7272 */
7373
74- exports . $watch = function ( exp , cb , options ) {
74+ exports . $watch = function ( expOrFn , cb , options ) {
7575 var vm = this
76- var watcher = new Watcher ( vm , exp , cb , {
76+ var parsed
77+ if ( typeof expOrFn === 'string' ) {
78+ parsed = dirParser . parse ( expOrFn ) [ 0 ]
79+ expOrFn = parsed . expression
80+ }
81+ var watcher = new Watcher ( vm , expOrFn , cb , {
7782 deep : options && options . deep ,
78- user : ! options || options . user !== false
83+ user : ! options || options . user !== false ,
84+ filters : parsed && parsed . filters
7985 } )
8086 if ( options && options . immediate ) {
8187 cb . call ( vm , watcher . value )
0 commit comments