docs: function() {
    return {
      restrict: 'A',
      controller: ['$scope', '$attrs', function($scope, $attrs) {
        var that = this;
        this.$options = copy($scope.$eval($attrs.ngModelOptions));
        // Allow adding/overriding bound events
        if (isDefined(this.$options.updateOn)) {
          this.$options.updateOnDefault = false;
          // extract "default" pseudo-event from list of events that can trigger a model update
          this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP, function() {
            that.$options.updateOnDefault = true;
            return ' ';
          }));
        } else {
          this.$options.updateOnDefault = true;
        }
      }]
    };
  }