aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/guide/dev_guide.forms.ngdoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/guide/dev_guide.forms.ngdoc')
-rw-r--r--docs/content/guide/dev_guide.forms.ngdoc82
1 files changed, 32 insertions, 50 deletions
diff --git a/docs/content/guide/dev_guide.forms.ngdoc b/docs/content/guide/dev_guide.forms.ngdoc
index 5a6fe54e..97d82bb1 100644
--- a/docs/content/guide/dev_guide.forms.ngdoc
+++ b/docs/content/guide/dev_guide.forms.ngdoc
@@ -138,7 +138,7 @@ The following example demonstrates:
};
$scope.isSaveDisabled = function() {
- return $scope.userForm.$invalid || angular.equals($scope.master, $scope.form);
+ return $scope.userForm.invalid || angular.equals($scope.master, $scope.form);
};
$scope.cancel();
@@ -150,7 +150,7 @@ The following example demonstrates:
<label>Name:</label><br/>
<input type="text" name="customer" ng:model="form.customer" required/>
- <span class="error" ng:show="userForm.customer.$error.REQUIRED">
+ <span class="error" ng:show="userForm.customer.error.REQUIRED">
Customer name is required!</span>
<br/><br/>
@@ -165,15 +165,15 @@ The following example demonstrates:
<input type="text" name="zip" ng:pattern="zip" size="5" required
ng:model="form.address.zip"/><br/><br/>
- <span class="error" ng:show="addressForm.$invalid">
+ <span class="error" ng:show="addressForm.invalid">
Incomplete address:
- <span class="error" ng:show="addressForm.state.$error.REQUIRED">
+ <span class="error" ng:show="addressForm.state.error.REQUIRED">
Missing state!</span>
- <span class="error" ng:show="addressForm.state.$error.PATTERN">
+ <span class="error" ng:show="addressForm.state.error.PATTERN">
Invalid state!</span>
- <span class="error" ng:show="addressForm.zip.$error.REQUIRED">
+ <span class="error" ng:show="addressForm.zip.error.REQUIRED">
Missing zip!</span>
- <span class="error" ng:show="addressForm.zip.$error.PATTERN">
+ <span class="error" ng:show="addressForm.zip.error.PATTERN">
Invalid zip!</span>
</span>
</ng:form>
@@ -284,56 +284,38 @@ This example shows how to implement a custom HTML editor widget in Angular.
$scope.htmlContent = '<b>Hello</b> <i>World</i>!';
}
- HTMLEditorWidget.$inject = ['$scope', '$element', '$sanitize'];
- function HTMLEditorWidget(scope, element, $sanitize) {
- scope.$parseModel = function() {
- // need to protect for script injection
- try {
- scope.$viewValue = $sanitize(
- scope.$modelValue || '');
- if (this.$error.HTML) {
- // we were invalid, but now we are OK.
- scope.$emit('$valid', 'HTML');
- }
- } catch (e) {
- // if HTML not parsable invalidate form.
- scope.$emit('$invalid', 'HTML');
- }
- }
+ angular.module('formModule', []).directive('ngHtmlEditor', function ($sanitize) {
+ return {
+ require: 'ngModel',
+ link: function(scope, elm, attr, ctrl) {
+ attr.$set('contentEditable', true);
- scope.$render = function() {
- element.html(this.$viewValue);
- }
+ ctrl.$render = function() {
+ elm.html(ctrl.viewValue);
+ };
- element.bind('keyup', function() {
- scope.$apply(function() {
- scope.$emit('$viewChange', element.html());
- });
- });
- }
+ ctrl.formatters.push(function(value) {
+ try {
+ value = $sanitize(value || '');
+ ctrl.emitValidity('HTML', true);
+ } catch (e) {
+ ctrl.emitValidity('HTML', false);
+ }
+
+ });
- angular.module('formModule', [], function($compileProvider){
- $compileProvider.directive('ngHtmlEditorModel', function ($formFactory) {
- return function(scope, element, attr) {
- var form = $formFactory.forElement(element),
- widget;
- element.attr('contentEditable', true);
- widget = form.$createWidget({
- scope: scope,
- model: attr.ngHtmlEditorModel,
- controller: HTMLEditorWidget,
- controllerArgs: {$element: element}});
- // if the element is destroyed, then we need to
- // notify the form.
- element.bind('$destroy', function() {
- widget.$destroy();
+ elm.bind('keyup', function() {
+ scope.$apply(function() {
+ ctrl.read(elm.html());
+ });
});
- };
- });
+
+ }
+ };
});
</script>
<form name='editorForm' ng:controller="EditorCntl">
- <div ng:html-editor-model="htmlContent"></div>
+ <div ng:html-editor ng:model="htmlContent"></div>
<hr/>
HTML: <br/>
<textarea ng:model="htmlContent" cols="80"></textarea>