mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Fix rendering of static boolean attributes
This commit is contained in:
parent
9f350a6e05
commit
f26f220860
@ -224,6 +224,9 @@ ElementNode.prototype = {
|
||||
}
|
||||
if (attr.value === null || attr.value === undefined) {
|
||||
template.text(' ' + name);
|
||||
} else if (attr.value === '') {
|
||||
// Treat empty attributes as boolean attributes
|
||||
template.text(' ' + name);
|
||||
} else if (template.isExpression(attr.value)) {
|
||||
template.attr(name, attr.value, attr.escapeXml !== false);
|
||||
} else {
|
||||
|
||||
@ -356,4 +356,18 @@ describe('marko/marko' , function() {
|
||||
url: '/foo'
|
||||
}, done);
|
||||
});
|
||||
|
||||
it("should support boolean attributes", function(done) {
|
||||
testRender("test-project/html-templates/boolean-attributes.marko", {
|
||||
options: [
|
||||
{ value: 'red', selected: false },
|
||||
{ value: 'green', selected: true },
|
||||
{ value: 'blue', selected: false }
|
||||
],
|
||||
disabled: false,
|
||||
checked: true
|
||||
}, done);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
13
test/test-project/html-templates/boolean-attributes.marko
Normal file
13
test/test-project/html-templates/boolean-attributes.marko
Normal file
@ -0,0 +1,13 @@
|
||||
<input type="checkbox" checked="${data.checked}">
|
||||
|
||||
<button disabled>Button</button>
|
||||
|
||||
<select>
|
||||
<option value="${option.value}"
|
||||
selected="${option.selected}"
|
||||
for="option in data.options">
|
||||
|
||||
${option.value}
|
||||
|
||||
</option>
|
||||
</select>
|
||||
@ -0,0 +1 @@
|
||||
<input type="checkbox" checked><button disabled>Button</button><select><option value="red">red</option><option value="green" selected>green</option><option value="blue">blue</option></select>
|
||||
@ -8,6 +8,6 @@
|
||||
|
||||
<span class="{?count;under\;-50\\;over-50}"></span>
|
||||
|
||||
<input type="checked" checked="{?true}"/>
|
||||
<input type="checked" checked="{?true;${true}}"/>
|
||||
|
||||
{?count>50;{?name;Hello $name! }Over 50;{?name;Hello $name! }50 or less}
|
||||
@ -1,14 +1,14 @@
|
||||
<template
|
||||
<template
|
||||
params="name,count">
|
||||
<div class="{?count>50;over-50}"></div>
|
||||
<div class="{?count lt 50;under-50}"></div>
|
||||
<div class="{?count lt 50;under-50;over-50}"></div>
|
||||
<div class="{?count lt 50;under-50;#}"></div>
|
||||
|
||||
|
||||
<span class="{?count;under\;-50\\;over-50}"></span>
|
||||
|
||||
<input type="checked" checked="{?true}"/>
|
||||
|
||||
<input type="checked" checked="{?true;${true}}"/>
|
||||
|
||||
{?count>50;{?name;Hello $name! }Over 50;{?name;Hello $name! }50 or less}
|
||||
|
||||
|
||||
</template>
|
||||
Loading…
x
Reference in New Issue
Block a user