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);