diff --git a/taglib/TransformHelper/handleWidgetFor.js b/taglib/TransformHelper/handleWidgetFor.js index 82286d8a4..306cf2ba8 100644 --- a/taglib/TransformHelper/handleWidgetFor.js +++ b/taglib/TransformHelper/handleWidgetFor.js @@ -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'); diff --git a/taglib/widgets-transformer.js b/taglib/widgets-transformer.js index c42991be5..f5de5517f 100644 --- a/taglib/widgets-transformer.js +++ b/taglib/widgets-transformer.js @@ -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(); } diff --git a/test/.jshintrc b/test/.jshintrc index 82e4e6bfc..65255be3c 100644 --- a/test/.jshintrc +++ b/test/.jshintrc @@ -40,5 +40,6 @@ "eqeqeq": false, "latedef": true, "unused": "vars", - "eqnull": true + "eqnull": true, + "expr": true } diff --git a/test/autotests-browser/widget-label-for/index.js b/test/autotests-browser/widget-label-for/index.js new file mode 100644 index 000000000..6d1028bcf --- /dev/null +++ b/test/autotests-browser/widget-label-for/index.js @@ -0,0 +1,7 @@ +module.exports = require('marko-widgets').defineComponent({ + template: require('./template.marko'), + + init: function() { + + } +}); \ No newline at end of file diff --git a/test/autotests-browser/widget-label-for/template.marko b/test/autotests-browser/widget-label-for/template.marko new file mode 100644 index 000000000..2c5b8af64 --- /dev/null +++ b/test/autotests-browser/widget-label-for/template.marko @@ -0,0 +1,4 @@ +