我有以下有效的javascript:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
birthday: DS.attr('date'),
fullName: function() {
return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
});
根据js2coffee.org这个js相当于以下咖啡脚本:
App.Person = DS.Model.extend(
firstName: DS.attr("string")
lastName: DS.attr("string")
birthday: DS.attr("date")
fullName: ->
@get("firstName") + " " + @get("lastName")
.property("firstName", "lastName")
)
然而,相同的咖啡脚本不会编译回有效的JavaScript。它甚至不是有效的咖啡脚本,因为它出现“意外”错误。 “
如何编写有效的Coffee脚本,以创建与上面列出的相同或语法相同的javascript?
答案 0 :(得分:0)
Coffeescript:
App.Person = DS.Model.extend(
firstName: DS.attr("string")
lastName: DS.attr("string")
birthday: DS.attr("date")
fullName: ( ->
@get("firstName") + " " + @get("lastName")
).property("firstName", "lastName")
)
编译为:
App.Person = DS.Model.extend({
firstName: DS.attr("string"),
lastName: DS.attr("string"),
birthday: DS.attr("date"),
fullName: (function() {
return this.get("firstName") + " " + this.get("lastName");
}).property("firstName", "lastName")
});
答案 1 :(得分:0)
无论如何都是这样的:
class App.Person extends DS.Model
name: DS.attr
我知道它不适用于这种语法,但我想使用Coffee的类语法