Sencha Touch 2 MVC - Как передавать / кэшировать данные между представлениями и контроллерами - PullRequest
0 голосов
/ 06 декабря 2011

Мне неясно, как лучше всего обрабатывать данные в Sencha Touch.

1 Я загружаю данные в действии контроллера из Rest Store.

    Ext.ModelManager.getModel('MyApp.model.CheckIn').load(barcode, {
        synchronous: true,
        success: function(model) {              
            that.checkInConfirm({model:model});
        }
    });

Затем представление обновляется путем вызова соответствующих установщиков некоторых полей, например, this.getNickname().setValue(options.model.data.nickname); После этого представление активируется с помощью this.getMain().setActiveItem(myView); Является ли это наилучшим способом передачи данных из контроллера в представление?

2 После манипулирования данными в представлении другое действие контроллера запускается нажатием кнопки.Затем я хочу обновить данные, загруженные в 1. Но в этот момент мои данные, загруженные ранее, теряются.Нужно ли снова загружать его с сервера или есть другой способ сохранить ранее загруженные данные?

1 Ответ

0 голосов
/ 07 декабря 2011
  1. Да, это звучит хорошо. Контроллер в основном управляет данными и устанавливает их для вашего представления (панели), что имеет смысл в мире MVC. Просто убедитесь, что вся логика бизнеса (получение / обновление / настройка данных) хранится в вашем контроллере и не размещается в вашем представлении (панели).

  2. Просто сохраните этот options.model в вашем контроллере. Сохраните его в yourController.models.yourModel или что-то подобное. Когда вы нажимаете кнопку, она должна отправить событие вашему контроллеру. Затем yourController начнет манипулировать своей моделью и обновит представление обновленными данными модели.

...