1到多个模型关联

时间:2012-10-18 11:27:35

标签: extjs sencha-touch-2

使用Sencha Touch 2制作1对多模型时遇到问题。

我想保存"人员"并添加" todo" s"对人。 这些值应保存在本地存储中。

所以1个人可以有很多待办事项。

为此我有2个模特和2个商店。

Personmodel:

Ext.define("app.model.PersonModel", {
extend: "Ext.data.Model",
config: {
    idProperty: 'email',
    fields: [
        { name: 'name', type: 'string' },
        { name: 'email', type: 'string' },
    ],
    validations: [
        { type: 'presence', field: 'email' , message: 'Blabla'},
        { type: 'presence', field: 'name' , message: 'Blabla'},
        { type: 'email', field: 'email' , message: 'Blabla'},
    ]
}
});

TodoModel:

Ext.define("app.model.TodoModel", {
extend: 'Ext.data.Model',
config: {
    idProperty: 'todoId',
    fields: [
        { name: 'todoId', type: 'int' },
        { name: 'email', type: 'string' },
        { name: 'note', type: 'string' }
    ],
    validations: [
        { type: 'presence', field: 'todoId', message: 'Blabla' },
        { type: 'presence', field: 'email', message: 'Blabla' },
        { type: 'presence', field: 'note', message: 'Blabla' }
    ]
}
});

PersonStore:

Ext.define("app.store.PersonStore", {
extend: "Ext.data.Store",
requires: "Ext.data.proxy.LocalStorage",
config: {
    model: "app.model.PersonModel",
    proxy: {
        type: 'localstorage',
        id: 'todo-app-personstore'
    },
    sorters: [{ property: 'name', direction: 'ASC'}],
    grouper: {
        sortProperty: "name",
        direction: "ASC",
        groupFn: function (record) {
        }
    }
}
});

TodoStore:

Ext.define("app.store.TodoStore", {
extend: "Ext.data.Store",
requires: "Ext.data.proxy.LocalStorage",
config: {
    model: "app.model.TodoModel",
    proxy: {
        type: 'localstorage',
        id: 'todo-app-todostore'
    },
    sorters: [{ property: 'email', direction: 'ASC'}],
    grouper: {
        sortProperty: "email",
        direction: "ASC",
        groupFn: function (record) {
        }
    }
}
});

我删除了我在模型中所做的关联,因为它们根本不起作用。

也许相关信息:首先我要保存一个人。后来我想保存todo并将它们连接到一个人。