@@ -96,7 +96,7 @@ function render({ source, element, data, key, index, currentIndex, update, remov
9696 renderedNode . clones . delete ( clone [ 0 ] )
9797 renderedNodes . delete ( clone [ 1 ] )
9898 clone [ 1 ] . remove ( )
99- } else if ( key ) {
99+ } else if ( key || Array . isArray ( data ) ) {
100100 if ( update ) {
101101 let clone
102102
@@ -119,7 +119,8 @@ function render({ source, element, data, key, index, currentIndex, update, remov
119119 if ( key === '$auto' )
120120 key = key . replace ( / \$ a u t o / g, uuid . generate ( 6 ) ) ;
121121
122- element [ i ] . setAttribute ( 'render' , key ) ;
122+ if ( key )
123+ element [ i ] . setAttribute ( 'render' , key ) ;
123124
124125 renderTemplate ( element [ i ] , data , key , index ) ;
125126 } else
@@ -154,7 +155,12 @@ function renderTemplate(template, data, key, index, keyPath) {
154155
155156 template = templateData
156157
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+
158164 if ( ! renderData ) return
159165
160166 if ( index === 0 ) {
@@ -211,7 +217,7 @@ function renderTemplate(template, data, key, index, keyPath) {
211217
212218 }
213219 } else {
214- if ( ! key ) {
220+ if ( ! key && ! Array . isArray ( renderData ) ) {
215221 key = 'data'
216222 renderData = getValueFromObject ( renderData , key ) ;
217223 if ( ! renderAs )
@@ -229,10 +235,16 @@ function renderTemplate(template, data, key, index, keyPath) {
229235
230236 for ( let i = 0 ; i < renderData . length ; i ++ ) {
231237 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+
236248 renderValues ( clone . element , object , key , renderAs ) ;
237249 insertElement ( template , clone . element , index ) ;
238250 }
@@ -332,7 +344,11 @@ function renderValues(node, data, key, renderAs, keyPath, parent) {
332344 parent = renderedNode
333345
334346 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+
336352 if ( ! eid ) continue
337353
338354 let oldEid = renderedNode . eid
0 commit comments