mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Marko v3: Reintroduced support for setting flags on elements from attr def
This commit is contained in:
parent
fb9aaae25b
commit
410bb80ede
@ -273,6 +273,10 @@ class CompileContext {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (attrDef.setFlag) {
|
||||||
|
node.setFlag(attrDef.setFlag);
|
||||||
|
}
|
||||||
|
|
||||||
attr.def = attrDef;
|
attr.def = attrDef;
|
||||||
|
|
||||||
foundAttrs[attrName] = true;
|
foundAttrs[attrName] = true;
|
||||||
|
|||||||
1
test/fixtures/render/autotest/attr-set-flag/expected.html
vendored
Normal file
1
test/fixtures/render/autotest/attr-set-flag/expected.html
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
<div><span test-set-flag-foo="bar" FLAG_SET>Has flag</span><span>Does not have flag</span></div>
|
||||||
11
test/fixtures/render/autotest/attr-set-flag/marko-taglib.json
vendored
Normal file
11
test/fixtures/render/autotest/attr-set-flag/marko-taglib.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"<*>": {
|
||||||
|
"@test-set-flag-*": {
|
||||||
|
"pattern": true,
|
||||||
|
"type": "string",
|
||||||
|
"preserve-name": true,
|
||||||
|
"set-flag": "testFlag"
|
||||||
|
},
|
||||||
|
"transformer": "./transformer.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
4
test/fixtures/render/autotest/attr-set-flag/template.marko
vendored
Normal file
4
test/fixtures/render/autotest/attr-set-flag/template.marko
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<div>
|
||||||
|
<span test-set-flag-foo="bar">Has flag</span>
|
||||||
|
<span>Does not have flag</span>
|
||||||
|
</div>
|
||||||
5
test/fixtures/render/autotest/attr-set-flag/transformer.js
vendored
Normal file
5
test/fixtures/render/autotest/attr-set-flag/transformer.js
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
module.exports = function transform(el, context) {
|
||||||
|
if (el.isFlagSet('testFlag')) {
|
||||||
|
el.setAttributeValue('FLAG_SET', context.builder.literalTrue());
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -4,6 +4,7 @@ chai.config.includeStack = true;
|
|||||||
var path = require('path');
|
var path = require('path');
|
||||||
var marko = require('../');
|
var marko = require('../');
|
||||||
var autotest = require('./autotest');
|
var autotest = require('./autotest');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
require('../node-require').install();
|
require('../node-require').install();
|
||||||
|
|
||||||
@ -16,7 +17,7 @@ describe('render', function() {
|
|||||||
var templatePath = path.join(dir, 'template.marko');
|
var templatePath = path.join(dir, 'template.marko');
|
||||||
var mainPath = path.join(dir, 'test.js');
|
var mainPath = path.join(dir, 'test.js');
|
||||||
|
|
||||||
var main = require(mainPath);
|
var main = fs.existsSync(mainPath) ? require(mainPath) : {};
|
||||||
|
|
||||||
if (main.checkError) {
|
if (main.checkError) {
|
||||||
var e;
|
var e;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user