1
- angular . module ( 'schemaForm' ) . directive ( 'schemaValidate' , [ 'sfValidator' , 'sfSelect' , 'sfUnselect' ,
2
- function ( sfValidator , sfSelect , sfUnselect ) {
3
-
1
+ angular . module ( 'schemaForm' ) . directive ( 'schemaValidate' , [ 'sfValidator' , 'sfSelect' , function ( sfValidator , sfSelect ) {
4
2
return {
5
3
restrict : 'A' ,
6
4
scope : false ,
@@ -10,6 +8,7 @@ angular.module('schemaForm').directive('schemaValidate', ['sfValidator', 'sfSele
10
8
require : 'ngModel' ,
11
9
link : function ( scope , element , attrs , ngModel ) {
12
10
11
+
13
12
// We need the ngModelController on several places,
14
13
// most notably for errors.
15
14
// So we emit it up to the decorator directive so it can put it on scope.
@@ -102,68 +101,6 @@ angular.module('schemaForm').directive('schemaValidate', ['sfValidator', 'sfSele
102
101
103
102
} ) ;
104
103
105
-
106
- var DEFAULT_DESTROY_STRATEGY ;
107
- if ( scope . options && scope . options . formDefaults ) {
108
- var formDefaultDestroyStrategy = scope . options . formDefaults . destroyStrategy ;
109
- var isValidFormDefaultDestroyStrategy = ( formDefaultDestroyStrategy === undefined ||
110
- formDefaultDestroyStrategy === '' ||
111
- formDefaultDestroyStrategy === null ||
112
- formDefaultDestroyStrategy === 'retain' ) ;
113
- if ( isValidFormDefaultDestroyStrategy ) {
114
- DEFAULT_DESTROY_STRATEGY = formDefaultDestroyStrategy ;
115
- }
116
- else {
117
- console . warn ( 'Unrecognized formDefaults.destroyStrategy: \'%s\'. Used undefined instead.' ,
118
- formDefaultDestroyStrategy ) ;
119
- DEFAULT_DESTROY_STRATEGY = undefined ;
120
- }
121
- }
122
-
123
- // Clean up the model when the corresponding form field is $destroy-ed.
124
- // Default behavior can be supplied as a formDefault, and behavior can be overridden in the form definition.
125
- scope . $on ( '$destroy' , function ( ) {
126
- var form = getForm ( ) ;
127
- var destroyStrategy = form . destroyStrategy ; // Either set in form definition, or as part of formDefaults.
128
- var schemaType = getSchemaType ( ) ;
129
-
130
- if ( destroyStrategy && destroyStrategy !== 'retain' ) {
131
- // Don't recognize the strategy, so give a warning.
132
- console . warn ( 'Unrecognized destroyStrategy: \'%s\'. Used default instead.' , destroyStrategy ) ;
133
- destroyStrategy = DEFAULT_DESTROY_STRATEGY ;
134
- }
135
- else if ( schemaType !== 'string' && destroyStrategy === '' ) {
136
- // Only 'string' type fields can have an empty string value as a valid option.
137
- console . warn ( 'Attempted to use empty string destroyStrategy on non-string form type. Used default instead.' ) ;
138
- destroyStrategy = DEFAULT_DESTROY_STRATEGY ;
139
- }
140
-
141
- if ( destroyStrategy === 'retain' ) {
142
- return ; // Valid option to avoid destroying data in the model.
143
- }
144
-
145
- destroyUsingStrategy ( destroyStrategy ) ;
146
-
147
- function destroyUsingStrategy ( strategy ) {
148
- var strategyIsDefined = ( strategy === null || strategy === '' || typeof strategy == undefined ) ;
149
- if ( ! strategyIsDefined ) {
150
- strategy = DEFAULT_DESTROY_STRATEGY ;
151
- }
152
- sfUnselect ( scope . form . key , scope . model , strategy ) ;
153
- }
154
-
155
- function getSchemaType ( ) {
156
- if ( form . schema ) {
157
- schemaType = form . schema . type ;
158
- }
159
- else {
160
- schemaType = null ;
161
- }
162
- }
163
- } ) ;
164
-
165
-
166
-
167
104
scope . schemaError = function ( ) {
168
105
return error ;
169
106
} ;
0 commit comments