diff --git a/src/reactTemplates.js b/src/reactTemplates.js index df2a0ef..fc26867 100644 --- a/src/reactTemplates.js +++ b/src/reactTemplates.js @@ -112,7 +112,11 @@ function generateProps(node, context) { var funcParts = val.split('=>'); var evtParams = funcParts[0].replace('(', '').replace(')', '').trim(); var funcBody = funcParts[1].trim(); - var generatedFuncName = generateInjectedFunc(context, key, funcBody,context.boundParams.concat([evtParams])); + var params = context.boundParams; + if (evtParams.trim() !== '') { + params = params.concat([evtParams.trim()]); + } + var generatedFuncName = generateInjectedFunc(context, key, funcBody, params); props[propKey] = generatedFuncName + ".bind(" + (["this"].concat(context.boundParams)).join(",") + ")"; } else if (key === "style" && !isStringOnlyCode(val)) { var styleParts = val.trim().split(";"); @@ -214,7 +218,6 @@ function convertHtmlToReact(node, context) { data.repeatBinds = ["this"].concat(_.reject(context.boundParams, function (param) { return (param === data.item || param === data.item+"Index"); })); - console.log(data.repeatBinds); data.body = repeatTemplate(data); } if (node.attribs[ifProp]) { diff --git a/test/data/lambda.rt b/test/data/lambda.rt new file mode 100644 index 0000000..cd8baf9 --- /dev/null +++ b/test/data/lambda.rt @@ -0,0 +1,6 @@ + +
+ {data.value} +
\ No newline at end of file diff --git a/test/data/lambda.rt.html b/test/data/lambda.rt.html new file mode 100644 index 0000000..23bb516 --- /dev/null +++ b/test/data/lambda.rt.html @@ -0,0 +1,3 @@ +
+ event did not happen because onClick not called +
\ No newline at end of file diff --git a/test/data/repeat.rt b/test/data/repeat.rt index 3f4e3f8..5accbbb 100644 --- a/test/data/repeat.rt +++ b/test/data/repeat.rt @@ -1,6 +1,8 @@

- Mock + Mock

diff --git a/test/data/repeat.rt.js b/test/data/repeat.rt.js index d848ffb..e6bbb90 100644 --- a/test/data/repeat.rt.js +++ b/test/data/repeat.rt.js @@ -7,19 +7,24 @@ define([ this.happend(evt); return false; } - function repeatItems2(items, itemsIndex) { + function onMouseDown2(items, itemsIndex) { + this.happend(); + return false; + } + function repeatItems3(items, itemsIndex) { return React.DOM.div({}, React.DOM.span({ 'style': { width: 'auto', lineHeight: '5px' }, - 'onClick': onClick1.bind(this, items, itemsIndex) + 'onClick': onClick1.bind(this, items, itemsIndex), + 'onMouseDown': onMouseDown2.bind(this, items, itemsIndex) }, 'Mock')); } return function () { return React.DOM.p.apply(this, _.flatten([ {}, - _.map(this.props.things, repeatItems2.bind(this)) + _.map(this.props.things, repeatItems3.bind(this)) ])); }; }); \ No newline at end of file diff --git a/test/src/test.js b/test/src/test.js index 7588b36..e2612a9 100644 --- a/test/src/test.js +++ b/test/src/test.js @@ -36,7 +36,7 @@ function normalizeHtml(html) { } test('html tests', function (t) { - var files = ['scope.rt']; + var files = ['scope.rt', 'lambda.rt']; t.plan(files.length); files.forEach(check); @@ -60,7 +60,6 @@ test('html tests', function (t) { var actual = React.renderToStaticMarkup(comp()); actual = normalizeHtml(actual); expected = normalizeHtml(expected); - console.log(actual,expected) t.equal(actual, expected); if (actual !== expected) { fs.writeFileSync(filename + '.actual.html', actual);