gpt4 book ai didi

ExtJs 模型代理与商店代理

转载 作者:行者123 更新时间:2023-12-04 11:24:52 26 4
gpt4 key购买 nike

好的,我被困在 ExtJs 中应该是什么基本任务上。我正在编写一个简单的登录脚本,该脚本将用户名和密码组合发送到 RESTful Web 服务,并在凭据正确时接收 GUID。

我的问题是,我是使用模型代理还是商店代理?

据我了解,模型代表一条记录,而商店用于处理包含多个记录的数据集。如果这是正确的,那么模型代理似乎是要走的路。

遵循 Sencha 的文档 http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Model代码看起来像这样:

Ext.define('AuthenticationModel', {
extend: 'Ext.data.Model',
fields: ['username', 'password'],

proxy: {
type: 'rest',
url : '/authentication'
}
});

//get a reference to the authentication model class
var AuthenticationModel = Ext.ModelManager.getModel('AuthenticationModel');

到目前为止一切正常,直到下一步:
//Use the configured RestProxy to make a GET request
AuthenticationModel.load('???', {
success: function(session) {
console.log('Login successful');
}
});

Model 类的 load() 方法是一个静态调用,需要一个唯一标识符。登录通常取决于两个因素,用户名和密码。

所以看起来 Store 代理是在 ExtJS 中验证某人的用户名和密码凭据组合的唯一方法。有人可以验证和解释吗?任何帮助理解这一点将不胜感激。

最佳答案

您只需要了解以下内容:

The store will use it's own proxy if you configured one for this instance and if not he takes the proxy from the model.



因此,您可以轻松地使用两个代理配置来启用商店上的多 CRUD 操作和模型上的单 CRUD 操作。注意模型的静载荷方法期望模型 id因为它应该只通过一个 Id 加载模型(是的,不支持复合键)。您还必须在回调中获取模型实例(正如您所做的那样)。

回到您的用户名/密码问题

您可以使用自定义的“loadSession”方法应用您的 session 模型
loadSession: function(username,password, config) {
config = Ext.apply({}, config);
config = Ext.applyIf(config, {
action: 'read',
username: username,
password: password
});

var operation = new Ext.data.Operation(config),
scope = config.scope || this,
callback;

callback = function(operation) {
var record = null,
success = operation.wasSuccessful();

if (success) {
record = operation.getRecords()[0];
// If the server didn't set the id, do it here
if (!record.hasId()) {
record.setId(username); // take care to apply the write ID here!!!
}
Ext.callback(config.success, scope, [record, operation]);
} else {
Ext.callback(config.failure, scope, [record, operation]);
}
Ext.callback(config.callback, scope, [record, operation, success]);
};

this.getProxy().read(operation, callback, this);
}

现在调用它而不是加载。

关于ExtJs 模型代理与商店代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com