Sencha Touch 2 を使用しており、次のようなモデルを定義しています。
Ext.define('csx.model.Profile', {
extend: 'Ext.data.Model',
config: {
fields: [
{name: 'firstname',type: 'string'},
{name: 'lastname', type: 'string'},
],
hasMany: [
{model: 'Telephone', name: 'telephones'},
{model: 'Email', name: 'emails'},
],
},
doSomething: function () {
var firstname = this.get('firstname'); //returns null
var phones = this.telephones(); // throws a TypeError
},
});
関数内doSomething
で、モデルの値とプロパティに関連付けられたモデルにアクセスしようとしていhasMany
ます。get
関数は null を返すだけで、関連付けられたモデルにアクセスしようとすると、オブジェクトに電話機能がないことを示す TypeError しか返されません。しかし、Sencha Touch 2 ガイドのUsingModelsでモデルの使用方法を見ると、hasMany
指定した名前 (電話) に似た関数を介して関連付けにアクセスできると書かれています。
では、代わりにモデル内のフィールド値と関連モデルにアクセスするにはどうすればよいでしょうか?