docs: function doOnScopeChange(scope, watchers, cb) {
          var i, watchExp, firstChar, handler;
  
          // set up the watchers if they exist
          if (watchers && cb) {
              for (i = 0; i < watchers.length; i++) {
                  handler = generateScopeChangeHandler(cb, watchers);
                  watchExp = watchers[i];
                  firstChar = watchExp.charAt(0);
                  if (firstChar === '^') {
                      scope.$watchCollection(watchExp.substring(1), handler);
                  }
                  else if (firstChar === '*') {
                      scope.$watch(watchExp.substring(1), handler, true);
                  }
                  else {
                      scope.$watch(watchExp, handler);
                  }
              }
          }
      }