0

別のモデルChamberに関連付けられたモデルScheduleがあります。関連付けられたモデル データが null の場合、問題が発生します。必須フィールドではないため、これは正常な動作です。

アップグレード:スケジュールモデルは、サーバーからデータをロードするストアで使用される scheduleTree モデルの一部です。

Ext.define('...SchedulesTree', {
    extend : '...TreeStore',
    model: "...ScheduleTree",
    root: {
        expanded: true,
        text: "root",
        children: [],
        loaded: true
    },
    paramsAsHash : true,
    proxy : {
        type: "direct",
        autoLoad: false,
        api : {
            read: registratorAction.getScheduleNode
        },
        reader: {
            type: "json",
            root : "records",
            totalProperty: 'total'
       }
    }
});

Ext.define("...ScheduleTree", {
    extend: "Ext.data.Model",


...
    associations: [   
        {
            type: "hasMany",
            model: "Unimed.model.staff.Schedule",
            name: "schedules",
            getterName: "schedules"
        }
    ]
});


Ext.define("...Schedule", {
extend: "Ext.data.Model",
fields: [
    {name: "timeBegin", type: "date", dateFormat: "time"},
    {name: "timeEnd", type: "date", dateFormat: "time"}
],
proxy: {
    type: "direct",
    reader: {
        type: "json"
    }
},
associations: [
    {
        type: "belongsTo",      
        model: "..LpuPosition", 
        associationKey: "lpuPosition",
        getterName: "lpuPosition",
        associatedName: "lpuPosition"
    },
    {
        type: "belongsTo",
        model: "...Chamber",
        associationKey: "chamber",
        getterName: "chamber",
        associatedName: "chamber"
    }
]
});

私がチャンバーを取得しているとき:

chamber = schedule.chamber();

そして、私が例外を取得しているリンクされたデータはありません: 'Uncaught TypeError: undefined is not a function'.

生データを調べることで回避できますが、もっと洗練されたソリューションが存在する可能性がありますか?

4

0 に答える 0