如何在Sencha Touch 2中加载单个模型?

时间:2012-04-05 09:21:41

标签: model sencha-touch-2

我正在尝试加载模型以将脏数据添加到商店,但似乎无法加载实际模型然后将setData加载到它...

这样做:

var model = Ext.ModelMgr.getModel("AT.model.Booking");

返回:

function () {
    return this.constructor.apply(this, arguments);
}

这似乎不对。我发现了一个关于此的线索; http://www.sencha.com/forum/showthread.php?177658-How-to-get-a-single-model

以下错误报告指出它应该在以下版本中修复,但它似乎不是......我不确定如何集成错误报告中提到的修复...

3 个答案:

答案 0 :(得分:1)

我不确定这是否是您想要完成的,但如果您想保存单个记录,请将模型从数据库中取出,然后调用save()。

var model = Ext.ModelManager.getModel('AT.model.Booking');

model.load(id, {
  scope: this,

  success: function(record) {
    if (profile.dirty) {
      profile.save();
    }
  },

  failure: function() {
    console.log('Something went wrong.');
  },
});

答案 1 :(得分:0)

如果我错了,请纠正我,但传递给getModel方法的论点是你想要获得的模型的id。您似乎将它传递给模型的类名。

除非AT.model.Booking是实际模型实例的id。这对我来说似乎很奇怪,但那不属于我的事:P

答案 2 :(得分:0)

这是加载单个模型的方法。

var thing;
AT.model.Booking.load(thingId, {
  success: function(rec) { 
    thing = rec; 
  } 
});

问题是您必须在模型的“配置”部分设置代理设置。这个语法比整个“getmodel”更直接。