2012-05-04 6 views
1

私はST2を初めて使用しています。Sencha Touch 2リストタップハンドラのhasManyアソシエーションにプログラムでアクセスする

私は電子メールと呼ばれるhasManyの関連付けを持つユーザーであるモデルを持っています。私は成功し、トップレベルのユーザ項目をロードするリストを持っている、と私は、リスト内の項目をタップすると、私は

record.get('displayName'); 

しかし、いずれかを介してタップイベントに渡されたレコードを使用して、ユーザーのプロパティにアクセスすることができています私はレコードオブジェクトから電子メールのコレクションにアクセスしようとしましたが、うまくいきませんでした。

私が試してみた:

record.get('emails'); // doesn't work 
record.getEmails(); // doesn't work 
record.emails().each(...); 

record.emails()は存在しないが、それが何であるか全く分から。 each()は何も返されませんが、okと評価されます。

このレコードオブジェクトから関連付けデータ要素を取得する方法を誰にも教えてください。

[ 
    { 
     "id":0, 
     "displayName":"Display Name 0", 
     "emails":[ 
     { 
      "value":"[email protected]", 
      "type":"home", 
      "pref":"true" 
     } 
     ] 
    } 
] 

答えて

2

record.emails()はそれを行うための正しい方法である:ここでは

は、私が作成していますJSONの一例です。これにより、Ext.data.Storeのインスタンスが返され、データがない場合はレコードをロードしたり、ループしたりすることができます。 hasManyの関連付けに

詳しいドキュメントはこちらです:応答のためのhttp://docs.sencha.com/touch/2-0/#!/api/Ext.data.association.HasMany

+0

どうもありがとうございました。 'record.emails()'にアクセスすると、 'load()'を呼び出すかどうかにかかわらず、常に空です。私はストアにonloadハンドラを置いて、そこに生データがありますが、電子メール配列が見えますが、何とか私がそこに渡されたストアレコードからリストのタップハンドラ内でアクセスするまでに失われてしまいます。それがどのように迷子になっているかを私がどのように把握するかについてのアドバイスありがとう。 – user738048

+0

何が間違っているのか分かりませんが、私はすべてを一から再構築し、 'emails()'が働いていました。 – user738048

関連する問題