2

我创建了一个模型,其中包含一个代理来加载单个记录并且它不接受任何参数。我不想使用商店,因为我永远不会拥有超过一张唱片。我创建了模型的一个实例,但不知道如何告诉它从服务器调用和加载记录。这是我能找到的唯一示例,但我没有要传递的 id。

User.load(123, {
success: function(user) {
    console.log("Loaded user 123: " + user.get('name'));
}
});

此外,我正在打 ajax 电话,而不是休息电话,以防万一。

4

2 回答 2

1

load(id, [config])是静态的,将返回您提供一个新的记录实例。它使用通过setProxy(proxy)设置的代理(也是静态的)。默认情况下,它将发送带有 params 的读取请求id: 123。静态方法允许您在可选配置对象中设置一些默认回调。需要这些回调来获取已加载记录(或错误)的实例。

这个怎么运作

// create a Model class
Ext.define('MyApp.User', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id', type: 'int'},
        {name: 'name', type: 'string'}
    ]
});

// apply a proxy instance
MyApp.User.setProxy(/*YourAjaxProxy*/);

// prepare a handler
var cb = function(model, op) {
    // log the new model instance
    console.log(model);
};

// get a instance
MyApp.User.load(123, {
    scope: this, // should be the scope of the callback (cb)
    success: cb
});

不是你需要的?只是评论...

于 2013-01-22T14:58:18.853 回答
0

只需发出 Ajax 请求并将结果存储在变量中。

 Ext.Ajax.request({
                    url: '/data/get',
                    method: 'GET',
                    params: {
                        requestID: 'XXXX',
                        connName: 'yyyy'
                    },
                    success: function (responseData) {
                       var countResult = Ext.decode(responseData.responseText);                      }
                });
于 2013-01-23T09:00:38.750 回答