@@ -100,7 +100,7 @@ async function render({ source, element, data, key, index, currentIndex, update,
100
100
101
101
for ( let i = 0 ; i < element . length ; i ++ ) {
102
102
if ( ! key )
103
- key = element [ i ] . getAttribute ( 'render' )
103
+ key = element [ i ] . getAttribute ( 'render' ) || type
104
104
105
105
let renderedNode = renderedNodes . get ( element [ i ] )
106
106
if ( source ) {
@@ -111,33 +111,36 @@ async function render({ source, element, data, key, index, currentIndex, update,
111
111
}
112
112
113
113
if ( remove ) {
114
- let cloneKey
115
- if ( type === 'object' ) {
116
- cloneKey = data [ type ] [ 0 ] . _id ;
117
- } else {
118
- cloneKey = data [ type ] [ 0 ] . name ;
119
- }
120
-
121
- let clone = renderedNode . clones . get ( cloneKey )
122
- if ( ! clone ) return
123
-
124
- renderedNode . clones . delete ( cloneKey )
125
- renderedNodes . delete ( clone )
126
- clone . remove ( )
127
- } else if ( key || Array . isArray ( data ) ) {
128
- if ( update ) {
129
- let clone
114
+ for ( let j = 0 ; j < data [ type ] . length ; j ++ ) {
115
+ let cloneKey
130
116
if ( type === 'object' ) {
131
- clone = renderedNode . clones . get ( data [ type ] [ 0 ] . _id ) ;
117
+ cloneKey = data [ type ] [ j ] . _id ;
132
118
} else {
133
- clone = renderedNode . clones . get ( data [ type ] [ 0 ] . name ) ;
119
+ cloneKey = data [ type ] [ j ] . name ;
134
120
}
135
121
136
- if ( ! currentIndex )
137
- currentIndex = data . $filter . currentIndex
138
-
122
+ let clone = renderedNode . clones . get ( cloneKey )
139
123
if ( ! clone ) return
124
+
125
+ renderedNode . clones . delete ( cloneKey )
126
+ renderedNodes . delete ( clone )
127
+ clone . remove ( )
128
+ }
129
+ } else if ( key || Array . isArray ( data ) ) {
130
+ if ( update ) {
140
131
for ( let j = 0 ; j < data [ type ] . length ; j ++ ) {
132
+ let clone
133
+ if ( type === 'object' ) {
134
+ clone = renderedNode . clones . get ( data [ type ] [ j ] . _id ) ;
135
+ } else {
136
+ clone = renderedNode . clones . get ( data [ type ] [ j ] . name ) ;
137
+ }
138
+
139
+ if ( ! currentIndex )
140
+ currentIndex = data . $filter . currentIndex
141
+
142
+ if ( ! clone ) return
143
+
141
144
await renderValues ( clone , { object : data [ type ] [ j ] } ) ;
142
145
if ( currentIndex >= 0 )
143
146
insertElement ( renderedNode , clone , index , currentIndex )
@@ -161,8 +164,8 @@ async function render({ source, element, data, key, index, currentIndex, update,
161
164
}
162
165
163
166
async function renderTemplate ( template , data , key , index , keyPath ) {
164
- if ( ! key )
165
- key = template . getAttribute ( 'render' )
167
+ // if (!key)
168
+ // key = template.getAttribute('render')
166
169
167
170
let templateData = renderedNodes . get ( template )
168
171
if ( ! templateData ) {
0 commit comments