Sencha Touch 2 MVC - 如何在视图和控制器之间传递/缓存数据

时间:2011-12-05 20:39:36

标签: extjs sencha-touch

我不清楚如何在Sencha Touch中最好地处理数据。

1我正在从Rest商店加载控制器操作中的数据。

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

然后通过调用某些字段的相应setter来更新视图,例如 this.getNickname().setValue(options.model.data.nickname); 在此之后,使用this.getMain().setActiveItem(myView);激活视图 这是将数据从控制器传递到视图的最佳方法吗?

2在视图中操作数据后,通过点击按钮触发另一个控制器操作。然后我想更新1中加载的数据。但是此时我加载的数据丢失了。我是否必须从服务器再次加载它,还是有另一种方法来保存以前加载的数据?

1 个答案:

答案 0 :(得分:0)

  1. 是的,听起来不错。 控制器基本上管理数据并将其设置为您的视图(面板),这在MVC世界中是有意义的。只需确保所有商务逻辑(获取/更新/设置数据)都保存在您的控制器中,而不是放在您的视图(面板)中。

  2. 只需在控制器中存储options.model即可。将它保存在yourController.models.yourModel或类似的东西中。 当您点击按钮时,它应该向您的控制器发送一个事件。 然后,yourController将开始操作其模型并使用更新的模型数据更新视图。

相关问题