免责声明:我是extjs
的新手,并且仍在框架中寻找自己的出路。
我有一个extjs
前端,可与PHP后端通信。我的应用程序的一部分将数据提交到后端,并收到如下响应:
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": true
};
var cluster = Ext.create('ClusterModel', data);
cluster.save({
success: function (model,data) {
//handle success scenario
},
failure: function (model, response) {
//oops something went wrong
//need to retry the request with data flag set to false!
}
});
我有一个特殊的失败情况,我需要通过将flag
字段设置为false来重试该请求。我能想到的唯一方法是在故障处理程序中嵌套和复制代码。
类似这样的东西:
failure: function (model, response) {
//oops something went wrong
//need to retry the request with data flag set to false!
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": false
};
var clusterRetry = Ext.create('ClusterModel', data);
clusterRetry.save({...//more duplicate code})
}
这感觉像是一个非常糟糕的主意,我甚至不确定它是否会起作用。还有其他选择可以让我完成此任务吗?
还要注意,我正在使用extjs 4.1.1
答案 0 :(得分:1)
您可以创建一个函数,该函数将自己处于错误状态并标为false来称呼自己。
类似的东西:
SaveCluster: function(values, validActivityList, flag) {
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": flag
};
var cluster = Ext.create('ClusterModel', data);
cluster.save({
success: function (model,data) {
//handle success scenario
},
failure: function (model, response) {
this.SaveCluster(values, validActivityList, false);
}
});
}
您可能在故障功能中遇到示波器问题,如果问题出现,我让您找到解决方案,并随时询问我们是否有问题。
我2年前开始使用ExtJS,并且回忆起这个框架是如何开始的;)