javascript - Sencha 触摸 : ScriptTagProxy url for create/update functionality

标签 javascript sencha-touch

我有一个 ScriptTagProxy,并且能够接收数据,但现在我想更新一条记录。我已经指定了一个网址,但只有一个网址。我是否必须使用此网址处理所有操作(读取、更新、创建、删除)? 如果是:该操作如何应用于 url? 如果不是:我如何指定更多网址?

这是我到目前为止的代码:

app.stores.entries = new Ext.data.Store({
    model: "app.models.Entry",
    storeId: 'app.stores.entries',
    proxy: {
        type: 'scripttag',
        url: 'http://myurl.de/getEntries.php',
        extraParams: {
            username: Ext.util.JSON.decode(window.localStorage.getItem('settings')).username,
            password: Ext.util.JSON.decode(window.localStorage.getItem('settings')).password
        },
        reader: {
            type: 'json'
        },
        writer: {
            type: 'json'
        }
    }
});

我在文档中读到,您可以将配置对象传递给模型的保存函数来配置代理。

所以我尝试了以下操作:

entry.save({
            url: 'http://mysite.com/updateEntry.php',
            extraParams: {
                username: Ext.util.JSON.decode(window.localStorage.getItem('settings')).username,
                password: Ext.util.JSON.decode(window.localStorage.getItem('settings')).password,
                entry: entry
            },}

如您所见,指定了一个网址。 但我仍然收到错误: 未捕获错误:您正在使用 ServerProxy,但尚未为其提供 url。 );

例如使用 AjaxProxy 或 RestProxy 时的相同行为:(

最佳答案

赫林,

对于你的第一个代码块,你会问:

问题 1)“我是否必须使用此 URL 处理所有操作(读取、更新、创建、删除)?”

答案是肯定的。

问题 2)“如果是:该操作如何应用于 URL?”

根据Sencha源代码,您需要像这样定义actionMethods:

myApp.stores.Things = new Ext.data.Store({
model: "Things",    proxy: {
    type: 'ajax',
    actionMethods: {
        create: 'POST',
        read: 'GET',
        update: 'PUT',
        destroy: 'DELETE'
    },
    url: 'jsontest.json',
    reader: {
        type: 'json',
        root: 'things'
    }
},
autoLoad: true

});

如果您删除、创建或编辑记录,您必须调用:

store.sync();

还有一个“自动保存”属性,但它仅在编辑时同步,而不在删除时同步。

这将发送已更改或已删除的内容作为请求负载的一部分,您有责任解析 json 并处理它。

关于javascript - Sencha 触摸 : ScriptTagProxy url for create/update functionality,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620248/

相关文章:

sencha-touch - Sencha Touch 2 中的动画尺寸

mysql - 如何使用 MySQL 数据库中的值填充 Sencha Touch 2 中的列表

javascript - 如何在 Javascript 中的消息正文中添加按钮?

javascript - 列表更新后无法让 sencha touch 2 对我的数据进行排序

android - Ext.device.notification.show 在 Phonegap 中创建错误 - Sencha Touch 2

javascript - Sencha Touch 商店关联不匹配?

javascript - 类中的 ES6 异步/等待

javascript - 通过动态路径时出现问题

javascript - 运行 setInterval 几次,然后暂停几秒钟

javascript - 在没有 "Are you sure you want to leave the page"提示的情况下刷新时执行 Javascript