我试图将Backbone.Model用作ES6类。这是我的代码:
import Backbone from 'backbone';
import $ from 'jquery';
Backbone.$ = $;
class DataManager extends Backbone.Model {
url() {
return 'api.json';
}
parse(data) {
console.log(data);
return data;
}
constructor() {
this.fetch()
}
}
export default DataManager;
api.json是一个简单的json文件,包含:{test:1}
fetch
调用成功获取数据(解析方法console.log显示它)但是我收到以下错误:
Uncaught TypeError: Cannot read property 'test' of undefined
如果我切换到es5语法,代码可以工作:Backbone.Model.extend({...});
有人可以解释一下吗?
答案 0 :(得分:2)
您需要从构造函数内部调用super()
,以便调用父类的构造函数。
答案 1 :(得分:1)
不要执行从构造函数中获取的行为。它被放在一个方法中供你在构造函数中的任何地方使用。首先,您创建一个对象然后告诉它做了什么。在创建它时不要让它开始。