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 ) {
42 return {
53 restrict : 'A' ,
64 scope : false ,
@@ -10,6 +8,7 @@ angular.module('schemaForm').directive('schemaValidate', ['sfValidator', 'sfSele
108 require : 'ngModel' ,
119 link : function ( scope , element , attrs , ngModel ) {
1210
11+
1312 // We need the ngModelController on several places,
1413 // most notably for errors.
1514 // 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
102101
103102 } ) ;
104103
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-
167104 scope . schemaError = function ( ) {
168105 return error ;
169106 } ;
0 commit comments