@@ -1621,12 +1621,6 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
1621
1621
$error = this . $error = { } ; // keep invalid keys here
1622
1622
1623
1623
1624
- // Setup initial state of the control
1625
- $element
1626
- . addClass ( PRISTINE_CLASS )
1627
- . addClass ( UNTOUCHED_CLASS ) ;
1628
- toggleValidCss ( true ) ;
1629
-
1630
1624
// convenience method for easy toggling of classes
1631
1625
function toggleValidCss ( isValid , validationErrorKey ) {
1632
1626
validationErrorKey = validationErrorKey ? '-' + snake_case ( validationErrorKey , '-' ) : '' ;
@@ -2152,40 +2146,45 @@ var ngModelDirective = function() {
2152
2146
return {
2153
2147
require : [ 'ngModel' , '^?form' , '^?ngModelOptions' ] ,
2154
2148
controller : NgModelController ,
2155
- link : {
2156
- pre : function ( scope , element , attr , ctrls ) {
2157
- // Pass the ng-model-options to the ng-model controller
2158
- if ( ctrls [ 2 ] ) {
2159
- ctrls [ 0 ] . $options = ctrls [ 2 ] . $options ;
2160
- }
2149
+ compile : function ngModelCompile ( element ) {
2150
+ // Setup initial state of the control
2151
+ element . addClass ( PRISTINE_CLASS ) . addClass ( UNTOUCHED_CLASS ) . addClass ( VALID_CLASS ) ;
2161
2152
2162
- // notify others, especially parent forms
2153
+ return {
2154
+ pre : function ngModelPreLink ( scope , element , attr , ctrls ) {
2155
+ // Pass the ng-model-options to the ng-model controller
2156
+ if ( ctrls [ 2 ] ) {
2157
+ ctrls [ 0 ] . $options = ctrls [ 2 ] . $options ;
2158
+ }
2163
2159
2164
- var modelCtrl = ctrls [ 0 ] ,
2165
- formCtrl = ctrls [ 1 ] || nullFormCtrl ;
2160
+ // notify others, especially parent forms
2166
2161
2167
- formCtrl . $addControl ( modelCtrl ) ;
2162
+ var modelCtrl = ctrls [ 0 ] ,
2163
+ formCtrl = ctrls [ 1 ] || nullFormCtrl ;
2168
2164
2169
- scope . $on ( '$destroy' , function ( ) {
2170
- formCtrl . $removeControl ( modelCtrl ) ;
2171
- } ) ;
2172
- } ,
2173
- post : function ( scope , element , attr , ctrls ) {
2174
- var modelCtrl = ctrls [ 0 ] ;
2175
- if ( modelCtrl . $options && modelCtrl . $options . updateOn ) {
2176
- element . on ( modelCtrl . $options . updateOn , function ( ev ) {
2165
+ formCtrl . $addControl ( modelCtrl ) ;
2166
+
2167
+ scope . $on ( '$destroy' , function ( ) {
2168
+ formCtrl . $removeControl ( modelCtrl ) ;
2169
+ } ) ;
2170
+ } ,
2171
+ post : function ngModelPostLink ( scope , element , attr , ctrls ) {
2172
+ var modelCtrl = ctrls [ 0 ] ;
2173
+ if ( modelCtrl . $options && modelCtrl . $options . updateOn ) {
2174
+ element . on ( modelCtrl . $options . updateOn , function ( ev ) {
2175
+ scope . $apply ( function ( ) {
2176
+ modelCtrl . $$debounceViewValueCommit ( ev && ev . type ) ;
2177
+ } ) ;
2178
+ } ) ;
2179
+ }
2180
+
2181
+ element . on ( 'blur' , function ( ev ) {
2177
2182
scope . $apply ( function ( ) {
2178
- modelCtrl . $$debounceViewValueCommit ( ev && ev . type ) ;
2183
+ modelCtrl . $setTouched ( ) ;
2179
2184
} ) ;
2180
2185
} ) ;
2181
2186
}
2182
-
2183
- element . on ( 'blur' , function ( ev ) {
2184
- scope . $apply ( function ( ) {
2185
- modelCtrl . $setTouched ( ) ;
2186
- } ) ;
2187
- } ) ;
2188
- }
2187
+ } ;
2189
2188
}
2190
2189
} ;
2191
2190
} ;
0 commit comments