@@ -130,7 +130,7 @@ async function render({ source, element, selector, data, key, index, currentInde
130130 source = { data }
131131
132132 if ( data . $filter ) {
133- index = index || data . $filter . startingIndex
133+ index = index || data . $filter . startingIndex || data . $filter . index
134134 update = update || data . $filter . update
135135 remove = remove || data . $filter . remove
136136 }
@@ -476,11 +476,17 @@ async function renderValues(node, data, key, renderAs, keyPath, parent) {
476476
477477 name = await renderValue ( attr , data , namePlaceholder , renderAs , renderedAttribute ) ;
478478 value = await renderValue ( attr , data , valuePlaceholder , renderAs , renderedAttribute ) ;
479-
480- if ( name === undefined && name === null ) {
479+ if ( namePlaceholder . includes ( '{{' ) && name ) {
480+ const attributes = name . match ( / ( [ ^ \s ] + = " [ ^ " ] * " | [ ^ \s ] + ) / g) || [ ] ;
481+ attributes . forEach ( attr => {
482+ let [ attributeName , attributeValue ] = attr . split ( "=" ) ;
483+ attributeValue = attributeValue ? attributeValue . replace ( / " / g, '' ) : '' ;
484+ node . setAttribute ( attributeName , attributeValue ) ;
485+ } ) ;
486+ } else if ( name === undefined || name === null || name === '' ) {
481487 renderedNodes . delete ( attr )
482488 node . removeAttribute ( attr . name ) ;
483- } else if ( ( value || value === "" ) && ( name !== attr . name || value !== attr . value ) )
489+ } else if ( name && ( value || value === "" ) && ( name !== attr . name || value !== attr . value ) )
484490 node . setAttribute ( name , value ) ;
485491 }
486492 // });
0 commit comments