2016-04-09 19 views
1

ExtJS'de yeni.
Bu kodun neden çalışmadığını bilmiyorum.
O Burada banaLearning ExtJS, referenceerror issue

ReferenceError: Country is not defined

verir kod şudur:

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")); 
    }); 
} 
}); 

kitapta Pratik ExtJS kopyalanmış 4 ve ... Ben memnun değilim çalışmıyor Kodunuz mükemmel çalışıyor

+1

"Var Ülke = Ext.create ('Ülke'); veya benzeri bir satır eksiksiniz sanırım. 'Ext.define' bir" sınıf "tanımlar ve' Ext.create' bir örnek oluşturur. – Alexander

+0

@Alexander Denedim ama bana çok hata verdi. Kesinlikle sadece modelle çalışmalı, sanırım yazar .create() gibi çok açık bir şeyi özlemeyecekti. – alexandre1985

+0

Kod, Ext 4.x'de beklendiği gibi çalışır - hatayı bir [fiddle] (http://fiddle.sencha.com) 'da denemeniz gerekir. – Emissary

cevap

0

yazar ..., jsfiddle linki kontrol https://fiddle.sencha.com/#fiddle/1bsc

Ext.application({ 
name : 'Fiddle', 

launch : function() { 
    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(); 
      var countryDetails = record.getCountryDetails(); 

      document.write(countryDetails.get("population") + '<br />'); 

      var cities = record.cities(); 
      cities.each(function(city) { 
       document.write(city.get("name") + '<br />'); 
      }); 
     } 
    }); 
} 
});