@@ -1470,6 +1470,19 @@ walkers.element = function(ast){
14701470
14711471 var child ;
14721472
1473+ if ( group && ! _ . isVoidTag ( ast . tag ) ) {
1474+ dom . inject ( combine . node ( group ) , element )
1475+ }
1476+
1477+ // sort before
1478+ attrs . sort ( function ( a1 , a2 ) {
1479+ var d1 = Constructor . directive ( a1 . name ) ,
1480+ d2 = Constructor . directive ( a2 . name ) ;
1481+ if ( d1 && d2 ) return ( d2 . priority || 1 ) - ( d1 . priority || 1 ) ;
1482+ if ( d1 ) return 1 ;
1483+ if ( d2 ) return - 1 ;
1484+ return - 1 ;
1485+ } )
14731486 // may distinct with if else
14741487 var destroies = walkAttributes . call ( this , attrs , element , destroies ) ;
14751488
@@ -1480,10 +1493,6 @@ walkers.element = function(ast){
14801493 type : "element" ,
14811494 group : group ,
14821495 node : function ( ) {
1483- if ( ! res . init && group && ! _ . isVoidTag ( ast . tag ) ) {
1484- animate . inject ( combine . node ( group ) , element )
1485- res . init = true ;
1486- }
14871496 return element ;
14881497 } ,
14891498 last : function ( ) {
@@ -3318,6 +3327,7 @@ var methods = {
33183327 get = expr . get ;
33193328 once = expr . once || expr . constant ;
33203329 }
3330+
33213331 this . _watchers . push ( {
33223332 id : uid ,
33233333 get : get ,
@@ -3996,12 +4006,10 @@ function initSelect( elem, parsed){
39964006 self . $update ( ) ;
39974007 inProgress = false ;
39984008 }
3999- dom . on ( elem , "change" , handler ) ;
4000- this . $on ( 'init' , function ( ) {
4001- if ( parsed . get ( self ) === undefined ) {
4002- parsed . set ( self , elem . value ) ;
4003- }
4004- } ) ;
4009+
4010+ if ( parsed . get ( self ) === undefined && elem . value ) {
4011+ parsed . set ( self , elem . value ) ;
4012+ }
40054013 return function destroy ( ) {
40064014 dom . off ( elem , "change" , handler ) ;
40074015 }
@@ -4044,11 +4052,9 @@ function initText(elem, parsed){
40444052 dom . on ( elem , "cut" , handler )
40454053 dom . on ( elem , "change" , handler )
40464054 }
4047- this . $on ( 'init' , function ( ) {
4048- if ( parsed . get ( self ) === undefined ) {
4049- parsed . set ( self , elem . value ) ;
4050- }
4051- } )
4055+ if ( parsed . get ( self ) === undefined && elem . value ) {
4056+ parsed . set ( self , elem . value ) ;
4057+ }
40524058 return function destroy ( ) {
40534059 if ( dom . msie !== 9 && "oninput" in dom . tNode ) {
40544060 elem . removeEventListener ( "input" , handler ) ;
@@ -4080,12 +4086,10 @@ function initCheckBox(elem, parsed){
40804086 inProgress = false ;
40814087 }
40824088 if ( parsed . set ) dom . on ( elem , "change" , handler )
4083- this . $on ( 'init' , function ( ) {
40844089
4085- if ( parsed . get ( self ) === undefined ) {
4086- parsed . set ( self , elem . checked ) ;
4087- }
4088- } ) ;
4090+ if ( parsed . get ( self ) === undefined ) {
4091+ parsed . set ( self , ! ! elem . checked ) ;
4092+ }
40894093
40904094 return function destroy ( ) {
40914095 if ( parsed . set ) dom . off ( elem , "change" , handler )
@@ -4113,11 +4117,9 @@ function initRadio(elem, parsed){
41134117 }
41144118 if ( parsed . set ) dom . on ( elem , "change" , handler )
41154119 // beacuse only after compile(init), the dom structrue is exsit.
4116- this . $on ( 'init' , function ( ) {
4117- if ( parsed . get ( self ) === undefined ) {
4118- if ( elem . checked ) parsed . set ( self , elem . value ) ;
4119- }
4120- } ) ;
4120+ if ( parsed . get ( self ) === undefined ) {
4121+ if ( elem . checked ) parsed . set ( self , elem . value ) ;
4122+ }
41214123
41224124 return function destroy ( ) {
41234125 if ( parsed . set ) dom . off ( elem , "change" , handler )
0 commit comments