mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Marko v3: fixed insertSiblingBefore and insertSiblingAfter
This commit is contained in:
parent
19adf139e1
commit
838f0fe4ed
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
7
test/fixtures/codegen/autotest/insertSiblingAfter/expected.js
vendored
Normal file
7
test/fixtures/codegen/autotest/insertSiblingAfter/expected.js
vendored
Normal 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>");
|
||||
}
|
||||
37
test/fixtures/codegen/autotest/insertSiblingAfter/index.js
vendored
Normal file
37
test/fixtures/codegen/autotest/insertSiblingAfter/index.js
vendored
Normal 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]);
|
||||
};
|
||||
7
test/fixtures/codegen/autotest/insertSiblingBefore/expected.js
vendored
Normal file
7
test/fixtures/codegen/autotest/insertSiblingBefore/expected.js
vendored
Normal 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>");
|
||||
}
|
||||
37
test/fixtures/codegen/autotest/insertSiblingBefore/index.js
vendored
Normal file
37
test/fixtures/codegen/autotest/insertSiblingBefore/index.js
vendored
Normal 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]);
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user