diff --git a/test/autotests/widgets-browser/state-var/component.js b/test/autotests/widgets-browser/state-var/component.js new file mode 100644 index 000000000..a560bd338 --- /dev/null +++ b/test/autotests/widgets-browser/state-var/component.js @@ -0,0 +1,7 @@ +module.exports = { + onInput: function() { + this.state = { + name: 'Frank' + }; + } +}; \ No newline at end of file diff --git a/test/autotests/widgets-browser/state-var/index.marko b/test/autotests/widgets-browser/state-var/index.marko new file mode 100644 index 000000000..3a23b705a --- /dev/null +++ b/test/autotests/widgets-browser/state-var/index.marko @@ -0,0 +1,3 @@ +
+ Hello ${state.name}! +
\ No newline at end of file diff --git a/test/autotests/widgets-browser/state-var/test.js b/test/autotests/widgets-browser/state-var/test.js new file mode 100644 index 000000000..cc1910414 --- /dev/null +++ b/test/autotests/widgets-browser/state-var/test.js @@ -0,0 +1,6 @@ +var expect = require('chai').expect; + +module.exports = function(helpers) { + var widget = helpers.mount(require('./index'), {}); + expect(widget.el.innerHTML).to.contain('Frank'); +}; \ No newline at end of file diff --git a/widgets/taglib/marko.json b/widgets/taglib/marko.json index 36888af31..cf8dc4d37 100644 --- a/widgets/taglib/marko.json +++ b/widgets/taglib/marko.json @@ -130,7 +130,7 @@ "@id": "string", "@hasDomEvents": "number", "@body": "string", - "var": "widget", + "vars": ["widget", "state"], "import-var": { "_cfg": "data.widgetConfig", "_state": "data.widgetState", diff --git a/widgets/taglib/widget-tag.js b/widgets/taglib/widget-tag.js index d2a1b5498..0d2d32be4 100644 --- a/widgets/taglib/widget-tag.js +++ b/widgets/taglib/widget-tag.js @@ -210,7 +210,7 @@ module.exports = function widgetTag(input, out) { // Only render the widget if it needs to be rerendered if (shouldRenderBody) { - input.renderBody(out, widgetDef); + input.renderBody(out, widgetDef, state); markoWidgets.writeDomEventsEl(widgetDef, out); }