@@ -96,7 +96,7 @@ function render({ source, element, data, key, index, currentIndex, update, remov
96
96
renderedNode . clones . delete ( clone [ 0 ] )
97
97
renderedNodes . delete ( clone [ 1 ] )
98
98
clone [ 1 ] . remove ( )
99
- } else if ( key ) {
99
+ } else if ( key || Array . isArray ( data ) ) {
100
100
if ( update ) {
101
101
let clone
102
102
@@ -119,7 +119,8 @@ function render({ source, element, data, key, index, currentIndex, update, remov
119
119
if ( key === '$auto' )
120
120
key = key . replace ( / \$ a u t o / g, uuid . generate ( 6 ) ) ;
121
121
122
- element [ i ] . setAttribute ( 'render' , key ) ;
122
+ if ( key )
123
+ element [ i ] . setAttribute ( 'render' , key ) ;
123
124
124
125
renderTemplate ( element [ i ] , data , key , index ) ;
125
126
} else
@@ -154,7 +155,12 @@ function renderTemplate(template, data, key, index, keyPath) {
154
155
155
156
template = templateData
156
157
157
- let renderData = getRenderValue ( template . element , data , key )
158
+ let renderData
159
+ if ( key )
160
+ renderData = getRenderValue ( template . element , data , key )
161
+ else if ( Array . isArray ( data ) )
162
+ renderData = data
163
+
158
164
if ( ! renderData ) return
159
165
160
166
if ( index === 0 ) {
@@ -211,7 +217,7 @@ function renderTemplate(template, data, key, index, keyPath) {
211
217
212
218
}
213
219
} else {
214
- if ( ! key ) {
220
+ if ( ! key && ! Array . isArray ( renderData ) ) {
215
221
key = 'data'
216
222
renderData = getValueFromObject ( renderData , key ) ;
217
223
if ( ! renderAs )
@@ -229,10 +235,16 @@ function renderTemplate(template, data, key, index, keyPath) {
229
235
230
236
for ( let i = 0 ; i < renderData . length ; i ++ ) {
231
237
let clone = cloneTemplate ( template ) ;
232
- clone . keyPath = template . keyPath + `[${ i } ]`
233
- let object = { [ renderAs ] : renderData [ i ] }
234
- if ( renderAs . includes ( '.' ) )
235
- object = dotNotationToObject ( object ) ;
238
+ clone . keyPath = template . keyPath || '' + `[${ i } ]`
239
+
240
+ let object
241
+ if ( renderAs ) {
242
+ object = { [ renderAs ] : renderData [ i ] }
243
+ if ( renderAs . includes ( '.' ) )
244
+ object = dotNotationToObject ( object ) ;
245
+ } else
246
+ object = renderData [ i ]
247
+
236
248
renderValues ( clone . element , object , key , renderAs ) ;
237
249
insertElement ( template , clone . element , index ) ;
238
250
}
@@ -332,7 +344,11 @@ function renderValues(node, data, key, renderAs, keyPath, parent) {
332
344
parent = renderedNode
333
345
334
346
for ( let eid of [ '_id' , 'name' , 'key' ] ) {
335
- eid = data [ renderAs ] [ eid ]
347
+ if ( renderAs )
348
+ eid = data [ renderAs ] [ eid ]
349
+ else
350
+ eid = data [ eid ]
351
+
336
352
if ( ! eid ) continue
337
353
338
354
let oldEid = renderedNode . eid
0 commit comments