2011-09-18 6 views
3

je reçois l'erreur:Association

Uncaught TypeError: Cannot call method 'indexOf' of undefined 
Ext.apply.urlAppend ext-all-debug.js:5040 
Ext.define.buildUrl ext-all-debug.js:26324 
Ext.define.buildRequest ext-all-debug.js:26148 
Ext.define.doRequest ext-all-debug.js:26367 
Ext.define.read ext-all-debug.js:26117 
Ext.define.inheritableStatics.load ext-all-debug.js:26603 
(anonymous function) ext-all-debug.js:51162 
(anonymous function) test.html:89 
isEvent ext-all-debug.js:10117 
call ext-all-debug.js:10073 

Je ne sais pas ce qui est l'inquiétude. J'ai vérifié la structure d'instance dans FF et il a vraiment la fonction getCategory. Merci!

 Ext.define("Category", { 
      extend: "Ext.data.Model", 
      fields: ["id", "name"] 
     }); 
     Ext.define("Product", { 
      extend: "Ext.data.Model", 
      fields: ["id", "name", "category_id"], 
      associations: [{ 
       type: "belongsTo", 
       model: "Category", 
       primaryKey: "id", 
       foreignKey: "category_id", 
       associationKey: "category" 
      }] 
     }); 

     Ext.onReady(function(){ 
      var p = new Product({ 
       id: 1, 
       name: "Kotomi", 
       category_id: 2, 
       category: { 
        id: 2, 
        name: "Clannad" 
       } 
      }); 
      console.log(p.getCategory().get("name")); 
     }); 

Répondre

0

Ceci est l'exemple de documentation of ExtJs 4. Vous avez missleaded les phrases ci-dessous:

The getCategory function was created on the Product model when we defined the 
association. This uses the Category's configured proxy to load the Category 
asynchronously, calling the provided callback when it has loaded.

Ainsi, cette erreur est à cause de manque proxy config dans le modèle de la catégorie.