Marko v3: fixed insertSiblingBefore and insertSiblingAfter

This commit is contained in:
Patrick Steele-Idem 2016-02-17 15:12:22 -07:00
parent 19adf139e1
commit 838f0fe4ed
5 changed files with 90 additions and 0 deletions

View File

@ -72,6 +72,7 @@ class ArrayContainer extends Container {
var curChild = array[i];
if (curChild === referenceNode) {
array.splice(i, 0, newChild);
newChild.container = this;
return;
}
}
@ -89,6 +90,7 @@ class ArrayContainer extends Container {
var curChild = array[i];
if (curChild === referenceNode) {
array.splice(i+1, 0, newChild);
newChild.container = this;
return;
}
}

View File

@ -0,0 +1,7 @@
if (true) {
out.w("<div class=\"greeting\"><span class=\"foo\"></span>");
var newVar = "Hello World";
out.w("Hello World</div>");
}

View File

@ -0,0 +1,37 @@
'use strict';
module.exports = function(builder) {
var spanElement = builder.htmlElement(
'span',
[
{
name: 'class',
value: builder.literal('foo')
}
]);
var htmlElement = builder.htmlElement(
'div',
[
{
name: 'class',
value: builder.literal('greeting')
}
],
[
spanElement,
builder.text(builder.literal('Hello World'))
]);
let varNode = builder.vars([
{
id: builder.identifier('newVar'),
init: builder.literal('Hello World')
}
]);
spanElement.insertSiblingAfter(varNode);
return builder.ifStatement(builder.literalTrue(), [htmlElement]);
};

View File

@ -0,0 +1,7 @@
if (true) {
out.w("<div class=\"greeting\">");
var newVar = "Hello World";
out.w("<span class=\"foo\"></span>Hello World</div>");
}

View File

@ -0,0 +1,37 @@
'use strict';
module.exports = function(builder) {
var spanElement = builder.htmlElement(
'span',
[
{
name: 'class',
value: builder.literal('foo')
}
]);
var htmlElement = builder.htmlElement(
'div',
[
{
name: 'class',
value: builder.literal('greeting')
}
],
[
spanElement,
builder.text(builder.literal('Hello World'))
]);
let varNode = builder.vars([
{
id: builder.identifier('newVar'),
init: builder.literal('Hello World')
}
]);
spanElement.insertSiblingBefore(varNode);
return builder.ifStatement(builder.literalTrue(), [htmlElement]);
};