2011-10-24 11 views
1

私は「Identity」と「Profile」という2つのモデルを持っています。アイデンティティ 'belongsTo'プロファイル。私が「アイデンティティ」タイプのレコードを取得したら、(このレコードによって)コレスポンデントプロファイルを取得したいと思います。BelongsTo ExtJSモデル

function viewProfile(identity) { 
    identity.getProfile(function(profile){ 
     console.log(profile); 
    }); 
} 

私は何を取得する空のプロファイルのオブジェクトである:私はこれをしようとすると

Ext.define('App.model.Identity', { 
    extend: 'Ext.data.Model', 
    fields: [ 
      // ... 
      {name: 'id_profile', type: 'int'}, 
      // ... 
      ], 

    belongsTo: { 
     model: 'App.model.Profile', 
     primaryKey: 'id', 
     foreignKey: 'id_profile', 
     associatedName: 'Profile' 
    }, 

    proxy: { 
     type: 'ajax', 
     api: { 
      read: App.Config.getBaseUrl() + '/admin_identity/list', 
      create: App.Config.getBaseUrl() + '/admin_identity/create', 
      update: App.Config.getBaseUrl() + '/admin_identity/update', 
      destroy: App.Config.getBaseUrl() + '/admin_identity/destroy' 
     }, 
     reader: { 
      type: 'json', 
      root: 'data' 
     } 
    } 
}); 

Ext.define('App.model.Profile', { 
    extend: 'Ext.data.Model', 
    fields: [ 
      {name: 'id', type: 'int'}, 
      // ... 
      ], 

    belongsTo: { 
     model: 'App.model.Identity', 
     primaryKey: 'id', 
     foreignKey: 'id_profile', 
     name: 'identities' 
    }, 

    proxy: { 
     // ... 
    } 
}); 

:私は、次のコードを使用してしようとしています。奇妙なことは、Identityクラスがプロファイルを取得するためにhttp要求を行わなかったことです。私はこれをやっているの?事前

答えて

1

おかげで、あなたは試してみました:

identity.getProfile({ 
    success:function(profile, operation){ 
    }, 
    failure: function(profile, operation){ 
     //check for a failure 
    } 
}); 

を私もassociatedNameプロパティを削除しようとするだろう。

+0

getNameおよびsetterの生成にassociatedNameプロパティが使用されます。私は 'modelObject.getProfile'を呼び出すことができます(もともと、get {modelname}を呼び出す必要があります)。提案した解決策は機能しませんでした。コールバックは呼び出されません。 –

+0

プロキシの設定を確認できますか? –

+0

こちらです。私はアイデンティティモデルだけの質問に加え、プロファイルモデルはほとんど同じプロキシを持っています。 App .. baseUrlはすでに定義されている関数で、URLを手助けするためのものです。 –

関連する問題