How to create a custom input type?

I'm new to AngularJS and would like to create a custom input type similar to the way AngularJS implements "email", for example.

<input type="email" ng-model="user.email" />

What I would like to create is an input type like this:

<input type="path" ng-model="page.path" />

Any ideas on how this can be accomplished? So far, I've only been able to figure out how to implement custom directives where 'path' is the name of the tag, attribute or class.

For example, I can get this to work but it is inconsistent with the other form fields and I'd really like them to look the same.

<input type="text" ng-model="page.path" path />
app.directive('path', function() {
  return {
    require: 'ngModel',
    link: function(scope, elm, attrs, ctrl) { ... }
  };
});

You can create your own input type="path" by creating an input directive with custom logic if the type attribute is set to "path".

I've created a simple example that simply replaces \ with /. The directive looks like this:

module.directive('input', function() {
    return {
        restrict: 'E',
        require: 'ngModel',
        link: function (scope, element, attr, ngModel) {
          if (attr.type !== 'path') return;

          // Override the input event and add custom 'path' logic
          element.unbind('input');
          element.bind('input', function () {
            var path = this.value.replace(/\\/g, '/');

            scope.$apply(function () {
              ngModel.$setViewValue(path);
            });
          });
        }
    };
});

Example

Update: Changed on, off to bind, unbind to remove jQuery dependency. Example updated.