Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sencha 2:LocalStorage中具有许多关联的同步模型_Javascript_Extjs - Fatal编程技术网

Javascript Sencha 2:LocalStorage中具有许多关联的同步模型

Javascript Sencha 2:LocalStorage中具有许多关联的同步模型,javascript,extjs,Javascript,Extjs,经过数小时的努力,我需要你的帮助 我必须建立模型:项目和任务。一个项目有许多任务,一个任务属于一个项目。如果您不使用商店来保存这些模型,那么一切都很好 我想将任务和项目保存在两个存储中(TaskStore和ProjectStore)。这些存储使用本地存储代理 我尝试了很多东西,最符合逻辑的是: Ext.define('MyApp.model.Task', { extend: 'Ext.data.Model', config: { fields: [

经过数小时的努力,我需要你的帮助

我必须建立模型:项目和任务。一个项目有许多任务,一个任务属于一个项目。如果您不使用商店来保存这些模型,那么一切都很好

我想将任务和项目保存在两个存储中(TaskStore和ProjectStore)。这些存储使用本地存储代理

我尝试了很多东西,最符合逻辑的是:

Ext.define('MyApp.model.Task', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
        {
            name: 'name',
            type: 'string'
        },
        {
            dateFormat: 'd/m/Y g:i',
            name: 'start',
            type: 'date'
        },
        {
            dateFormat: 'd/m/Y g:i',
            name: 'end',
            type: 'date'
        },
        {
            name: 'status',
            type: 'string'
        }
        ],
        belongsTo: {
            model: 'MyApp.model.Project'
        }
    }
});


Ext.define('MyApp.model.Project', {
    extend: 'Ext.data.Model',
    alias: 'model.Project',
    config: {
        hasMany: {
            associationKey: 'tasks',
            model: 'MyApp.model.Task',
            autoLoad: true,
            foreignKey: 'project_id',
            name: 'tasks',
            store: {storeId: "TaskStore"}
        },
        fields: [
            {
                name: 'name',
                type: 'string'
            },
            {
                dateFormat: 'd/m/Y',
                name: 'start',
                type: 'date'
            },
            {
                dateFormat: 'd/m/Y',
                name: 'end',
                type: 'date'
            }
        ]
    }
});
这是我的“主要”:


项目已添加到存储中,但任务未添加。为什么

添加任务后,不要忘记保存或同步存储

Ext.getStore("ProjectStore").sync();

添加任务后,不要忘记保存或同步存储

Ext.getStore("ProjectStore").sync();

简短回答:在撰写本文时,它不起作用。我认为应该,但事实并非如此。我最终创造了相当复杂的变通方法。我可以说,刚刚完成了一个相当复杂的Sencha Touch 2项目,它仍然值得使用,因为在会话过程中,它提供了一些显著的好处。然而,在存储状态时,我认为您必须滚动自己的状态并手动重新配置。见此帖:


简短回答:在撰写本文时,它不起作用。我认为应该,但事实并非如此。我最终创造了相当复杂的变通方法。我可以说,刚刚完成了一个相当复杂的Sencha Touch 2项目,它仍然值得使用,因为在会话过程中,它提供了一些显著的好处。然而,在存储状态时,我认为您必须滚动自己的状态并手动重新配置。见此帖:


已经尝试过,即使两个存储都设置为更改时同步。这是一个需要记住的好方法,但不是解决问题的方法,我认为问题是ST2中的一个限制。已经尝试过,即使两个存储都设置为更改时同步。这是一个需要记住的好方法,但不是解决问题的方法,我认为问题在于ST2的局限性。从2.3.0(2013年8月)起,这仍然是Sencha Touch的状态:不支持存储关联。从2.3.0(2013年8月)起,这仍然是Sencha Touch的状态:不支持存储关联。