@@ -59,7 +59,7 @@ exports.$delete = function (key) {
5959 * Watch an expression, trigger callback when its
6060 * value changes.
6161 *
62- * @param {String } exp
62+ * @param {String|Function } expOrFn
6363 * @param {Function } cb
6464 * @param {Object } [options]
6565 * - {Boolean} deep
@@ -68,11 +68,17 @@ exports.$delete = function (key) {
6868 * @return {Function } - unwatchFn
6969 */
7070
71- exports . $watch = function ( exp , cb , options ) {
71+ exports . $watch = function ( expOrFn , cb , options ) {
7272 var vm = this
73- var watcher = new Watcher ( vm , exp , cb , {
73+ var parsed
74+ if ( typeof expOrFn === 'string' ) {
75+ parsed = dirParser . parse ( expOrFn )
76+ expOrFn = parsed . expression
77+ }
78+ var watcher = new Watcher ( vm , expOrFn , cb , {
7479 deep : options && options . deep ,
75- user : ! options || options . user !== false
80+ user : ! options || options . user !== false ,
81+ filters : parsed && parsed . filters
7682 } )
7783 if ( options && options . immediate ) {
7884 cb . call ( vm , watcher . value )
0 commit comments