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;
|
||||
}
|
||||
|
||||
if (attrDef.setFlag) {
|
||||
node.setFlag(attrDef.setFlag);
|
||||
}
|
||||
|
||||
attr.def = attrDef;
|
||||
|
||||
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 marko = require('../');
|
||||
var autotest = require('./autotest');
|
||||
var fs = require('fs');
|
||||
|
||||
require('../node-require').install();
|
||||
|
||||
@ -16,7 +17,7 @@ describe('render', function() {
|
||||
var templatePath = path.join(dir, 'template.marko');
|
||||
var mainPath = path.join(dir, 'test.js');
|
||||
|
||||
var main = require(mainPath);
|
||||
var main = fs.existsSync(mainPath) ? require(mainPath) : {};
|
||||
|
||||
if (main.checkError) {
|
||||
var e;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user