mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Fixes #163 w-for was not being removed
This commit is contained in:
parent
c9e94eb413
commit
76da236ee5
@ -16,17 +16,15 @@
|
||||
|
||||
module.exports = function handleWidgetFor() {
|
||||
var el = this.el;
|
||||
if (!el.hasAttribute('w-for')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var widgetFor = el.getAttributeValue('w-for');
|
||||
|
||||
el.removeAttribute('w-for');
|
||||
|
||||
if (widgetFor == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Handle the "w-for" attribute
|
||||
if (el.hasAttribute('for')) {
|
||||
this.addError('The "w-for" attribute cannot be used in conjuction with the "for" attribute');
|
||||
|
||||
@ -48,7 +48,9 @@ module.exports = function transform(el, context) {
|
||||
|
||||
if (el.hasAttribute('w-id')) {
|
||||
transformHelper.assignWidgetId();
|
||||
} else if (el.hasAttribute('w-for')) {
|
||||
}
|
||||
|
||||
if (el.hasAttribute('w-for')) {
|
||||
transformHelper.handleWidgetFor();
|
||||
}
|
||||
|
||||
|
||||
@ -40,5 +40,6 @@
|
||||
"eqeqeq": false,
|
||||
"latedef": true,
|
||||
"unused": "vars",
|
||||
"eqnull": true
|
||||
"eqnull": true,
|
||||
"expr": true
|
||||
}
|
||||
|
||||
7
test/autotests-browser/widget-label-for/index.js
Normal file
7
test/autotests-browser/widget-label-for/index.js
Normal file
@ -0,0 +1,7 @@
|
||||
module.exports = require('marko-widgets').defineComponent({
|
||||
template: require('./template.marko'),
|
||||
|
||||
init: function() {
|
||||
|
||||
}
|
||||
});
|
||||
4
test/autotests-browser/widget-label-for/template.marko
Normal file
4
test/autotests-browser/widget-label-for/template.marko
Normal file
@ -0,0 +1,4 @@
|
||||
<div w-bind>
|
||||
<label w-id="label" w-for="input">foo</label>
|
||||
<input w-id="input" value="test">
|
||||
</div>
|
||||
12
test/autotests-browser/widget-label-for/test.js
Normal file
12
test/autotests-browser/widget-label-for/test.js
Normal file
@ -0,0 +1,12 @@
|
||||
var expect = require('chai').expect;
|
||||
|
||||
module.exports = function(helpers) {
|
||||
var widget = helpers.mount(require('./index'), {});
|
||||
var label = widget.getEl('label');
|
||||
var forElId = label.getAttribute('for');
|
||||
var inputEl = document.getElementById(forElId);
|
||||
|
||||
expect(forElId).to.exist;
|
||||
expect(inputEl.value).to.equal('test');
|
||||
expect(label.getAttribute('w-for')).to.equal(null);
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user