aboutsummaryrefslogtreecommitdiffstats
path: root/docs/angular.validator.ngdoc
diff options
context:
space:
mode:
authorMisko Hevery2010-11-22 12:05:01 -0800
committerMisko Hevery2010-12-06 15:48:40 -0800
commit58d0e8945d772eddbfecbe6a645b2f1c4dd38bf2 (patch)
tree2f6b7ec1b0cc09a1976c381c42452d258d239ca8 /docs/angular.validator.ngdoc
parent2bbced212e2ee93948c45360fee00b2e3f960392 (diff)
downloadangular.js-58d0e8945d772eddbfecbe6a645b2f1c4dd38bf2.tar.bz2
allow documentation to be in external file
* Load templates once instead of per request * show timing information * load files ending in .ngdoc and process them
Diffstat (limited to 'docs/angular.validator.ngdoc')
-rw-r--r--docs/angular.validator.ngdoc73
1 files changed, 73 insertions, 0 deletions
diff --git a/docs/angular.validator.ngdoc b/docs/angular.validator.ngdoc
new file mode 100644
index 00000000..acd3caf2
--- /dev/null
+++ b/docs/angular.validator.ngdoc
@@ -0,0 +1,73 @@
+@workInProgress
+@ngdoc overview
+@name angular.validator
+@namespace Namespace for all filters.
+@description
+# Overview
+Validators are a standard way to check the user input against a specific criteria. For
+example, you might need to check that an input field contains a well-formed phone number.
+
+# Syntax
+Attach a validator on user input widgets using the `ng:validate` attribute.
+
+<doc:example>
+ <doc:source>
+ Change me: &lt;input type="text" name="number" ng:validate="integer" value="123"&gt;
+ </doc:source>
+ <doc:scenario>
+ it('should validate the default number string', function() {
+ expect(element('input[name=number]').attr('class')).
+ not().toMatch(/ng-validation-error/);
+ });
+ it('should not validate "foo"', function() {
+ input('number').enter('foo');
+ expect(element('input[name=number]').attr('class')).
+ toMatch(/ng-validation-error/);
+ });
+ </doc:scenario>
+</doc:example>
+
+
+# Writing your own Validators
+Writing your own validator is easy. To make a function available as a
+validator, just define the JavaScript function on the `angular.validator`
+object. <angular/> passes in the input to validate as the first argument
+to your function. Any additional validator arguments are passed in as
+additional arguments to your function.
+
+You can use these variables in the function:
+
+* `this` — The current scope.
+* `this.$element` — The DOM element containing the binding. This allows the filter to manipulate
+ the DOM in addition to transforming the input.
+
+In this example we have written a upsTrackingNo validator.
+It marks the input text "valid" only when the user enters a well-formed
+UPS tracking number.
+
+@css ng-validation-error
+ When validation fails, this css class is applied to the binding, making its borders red by
+ default.
+
+@example
+<script>
+ angular.validator('upsTrackingNo', function(input, format) {
+ var regexp = new RegExp("^" + format.replace(/9/g, '\\d') + "$");
+ return input.match(regexp)?"":"The format must match " + format;
+ });
+</script>
+<input type="text" name="trackNo" size="40"
+ ng:validate="upsTrackingNo:'1Z 999 999 99 9999 999 9'"
+ value="1Z 123 456 78 9012 345 6"/>
+
+@scenario
+it('should validate correct UPS tracking number', function() {
+ expect(element('input[name=trackNo]').attr('class')).
+ not().toMatch(/ng-validation-error/);
+});
+
+it('should not validate in correct UPS tracking number', function() {
+ input('trackNo').enter('foo');
+ expect(element('input[name=trackNo]').attr('class')).
+ toMatch(/ng-validation-error/);
+});