【发布时间】:2015-12-12 01:46:00
【问题描述】:
我是一名爱好者,正在研究使用 CoffeeScript、Jade 和 Stylus 编写的 Discover Meteor 一书(类似于 this)。
我遇到了一段无法编译成正确 JavaScript 的代码。我的咖啡是这样的:
Template.postSubmit.events
'submit form': (e) ->
e.preventDefault()
post =
url: $(e.target).find('[name=url]').val()
title: $(e.target).find('[name=title]').val()
Meteor.call 'postInsert', post, (error,result) ->
if error
return alert(error.reason)
Router.go('postPage', _id: result.id)
return
编译成这样:
Template.postSubmit.events({
'submit form': function(e) {
var post;
e.preventDefault();
post = {
url: $(e.target).find('[name=url]').val(),
title: $(e.target).find('[name=title]').val()
};
Meteor.call('postInsert', post, function(error, result) {
if (error) {
return alert(error.reason);
}
return Router.go('postPage', {
_id: result.id
});
});
}
});
根据书,最后的“return”(在“Router.go”旁边)不属于代码。其他一切似乎都是正确的。我尝试了多种方法来重写我的 CoffeeScript,但都没有成功。我知道 Coffee 在所有函数的最后一行自然地插入了一个返回,但是我没有成功返回空返回或我见过的任何其他建议。我想知道的是:额外的返回是否会干扰代码的执行,以及如何更好地编写我的 CoffeeScript 来避免这种情况发生?
【问题讨论】:
标签: javascript meteor coffeescript