我正在尝试在coffeescript中定义一个类,以便在我的rails项目中使用它。我正在努力使用定义CLASS常量的语法并引用它们,这是我到目前为止所做的:
class Project
inputFields :
title: '#title'
calculateDataList : [
@inputFields.title
]
但是浏览器抱怨:
Uncaught TypeError: Cannot read property 'title' of undefined
我不确定这里的语法是什么。谁能帮助我?
谢谢,
答案 0 :(得分:1)
这是CoffeeScript类的基本语法:
class Add
constructor: (number1, number2) ->
@number1 = number1
@number2 = number 2
run: ->
@number1 + @number2
我认为这样的代码适用于您的代码:
class Project
inputFields: ->
title: '#title'
calculateDataList: ->
[this.inputFields().title]
Project
是一个类,inputFields()
和calculateDataList()
是方法。要在inputFields()
中调用calculateDataList()
方法,请使用this
关键字。
使用以下命令运行代码:
p = new Project
p.calculateDataList()
答案 1 :(得分:1)
您必须保存对原型的引用。试试这个:
class Project
inputFields :
title: '#title'
calculateDataList : [
Project::inputFields.title
]
答案 2 :(得分:0)
实际上,您的代码无法编译。
我不确定你想要什么,但这个coffeescript代码:
class Project
inputFields :
title: '#title'
calculateDataList : [@inputFields.title]
编译以下Javascript:
// Generated by CoffeeScript 1.6.3
(function() {
var Project;
Project = (function() {
function Project() {}
Project.prototype.inputFields = {
title: '#title'
};
Project.prototype.calculateDataList = [Project.inputFields.title];
return Project;
})();
}).call(this);