【发布时间】:2016-04-09 19:00:44
【问题描述】:
我是 ExtJS 的新手。
我不知道为什么这段代码不起作用。
它给了我
ReferenceError: Country is not defined
代码如下:
Ext.define("Continent", {
extend: "Ext.data.Model",
fields: ["name"]
});
Ext.define("City", {
extend: "Ext.data.Model",
fields: ["name"]
});
Ext.define("CountryDetails", {
extend: "Ext.data.Model",
fields: ["id","population"],
});
Ext.define("Country", {
extend: "Ext.data.Model",
idProperty : "name",
fields: ["name", "capital"],
hasMany: [{ name: "cities", model: "City"}],
hasOne: [{model:"CountryDetails"}],
belongsTo: [{ model: "Continent"}],
proxy : {
type : "memory",
data : {
country : {
name : "France",
capital : "Paris",
countrydetails : {
id : "cd101",
population : 65436552
},
cities : [{name:"Lyon"},{name:"Avignon"}],
continent : {
name : "Europe"
}
}
},
reader : {
type : "json",
root : "country"
}
}
});
Country.load("France",{
success : function(record){
var continent = record.getContinent();
console.log(continent.get("name"));
var countryDetails = record.getCountryDetails();
console.log(countryDetails.get("population"));
var cities = record.cities();
cities.each(function(city){
console.log(city.get("name"));
});
}
});
我从Practical ExtJS 4这本书里抄来的,它不起作用……我对作者不满意……
【问题讨论】:
-
我猜你错过了
var Country = Ext.create('Country');或类似的行。Ext.define定义一个“类”,Ext.create创建一个实例。 -
@Alexander 我试过了,但它给了我很多错误。 Suposely 它应该只适用于模型,我想作者不会错过如此明显的东西,比如 .create() 。
-
代码在 Ext 4.x 中按预期工作 - 您应该尝试在 fiddle 中重现您的错误。
-
我可以在这里复制它fiddle.sencha.com/#fiddle/18m9
-
@alex9311 对我来说它给了我: Uncaught TypeError: record.getCountryDetails is not a function 。它是否适合您?
标签: extjs extjs4 referenceerror