Обновление записи в Sencha Touch Data Store с помощью Ajaxproxy - PullRequest
0 голосов
/ 24 февраля 2012

Я разрабатываю простую форму с помощью Secha Touch.Я определил хранилище данных для моей модели следующим образом:

App.stores.shopinglists = new Ext.data.Store({
model: 'ShopingList',
autoLoad: false,

proxy: new Ext.data.AjaxProxy({
    type: 'ajax',
    url: 'http://localhost:2795/ShopingListService/',
    reader: {
        type: 'json',
        root: 'ResultData',
        totalProperty: 'Total',
        successProperty: 'Success'
    },
    writer: {
        encode: true,
        type: 'json'
    }

})
});

Представление загружается нормально, и я могу видеть список элементов и редактировать их.Однако, когда я нажимаю кнопку обновления, я получаю следующую ошибку: Uncaught Error: вы используете ServerProxy, но не указали его с URL-адресом.

Что мне здесь не хватает?Прокси имеет определенный URL, но когда вызывается обновление, оно не определено.

Редактировать: кнопка просто вызывает действие контроллера.

onSaveAction: function () {
    var model = this.getRecord();
    Ext.dispatch({
        controller: 'ShopingLists',
        action: (model.phantom ? 'save' : 'update'),
        data: this.getValues(),
        record: model,
        form: this
    });
},

Код, выполняемый контроллером:

update: function (params) {
    debugger;
    var tmpshopingList = new App.models.ShopingList(params.data);
    var errors = tmpshopingList.validate();
    if (errors.isValid()) {
        params.record.set(params.data);
        params.record.save();
        this.index();
    } else {
        params.form.showErrors(errors);
    }
},

1 Ответ

2 голосов
/ 25 февраля 2012

Мне кажется, я знаю, что происходит: модель знает, что у нее есть прокси-сервер, но все конфигурации не копируются.Возможно, это ошибка в Sencha Touch 1.x.

Попробуйте добавить конфигурацию proxy в вашу модель, а не в магазин.

...