我有以下功能
function registerUser(event) {
event.preventDefault();
let userData = {
username: $('#formRegister input[name=username]').val(),
password: $('#formRegister input[name=passwd]').val()
};
$.ajax({
method: "POST",
url: kinveyBaseUrl + "user/" + kinveyAppKey + "/",
headers: kinveyAppAuthHeaders,
data: JSON.stringify(userData),
success: registerSuccess,
error: handleAjaxError
});
function registerSuccess(userInfo) {
saveAuthInSession(userInfo);
showHideMenuLinks();
listBooks();
showInfo('User registration successful.');
}
}
我尝试通过以下方式执行此操作:Direction Controllers 包含带有 1 个函数的 RegisterUserController.js 文件:
function registerUser(event) {
event.preventDefault();
let userData = {
username: $('#formRegister input[name=username]').val(),
password: $('#formRegister input[name=passwd]').val()
};
registerUserAjaxRequest();
function registerSuccess(userInfo) {
saveAuthInSession(userInfo);
showHideMenuLinks();
listBooks();
showInfo('User registration successful.');
}
}
在其他方向模型中包含具有此功能的 RegisterUserModel.js 文件:
function registerUserAjaxRequest() {
$.ajax({
method: "POST",
url: kinveyBaseUrl + "user/" + kinveyAppKey + "/",
headers: kinveyAppAuthHeaders,
data: JSON.stringify(userData),
success: registerSuccess,
error: handleAjaxError
}});
你猜怎么着,只有当 ajax 请求在 regusterUser 函数中时它才起作用。问题是:我怎样才能分解成更小的函数并正确运行?
提前致谢
最佳答案
这就是我创建的解决方案。我不确定这是一个好的做法。
这就是寄存器模型:
function registerUserModel(userData) {
return $.ajax({
method: "POST",
url: kinveyBaseUrl + "user/" + kinveyAppKey + "/",
headers: kinveyAppAuthHeaders,
data: JSON.stringify(userData),
error: handleAjaxError
});
}
这里是注册用户 Controller
function registerUser(event) {
event.preventDefault();
let userData = {
username: $('#formRegister input[name=username]').val(),
password: $('#formRegister input[name=passwd]').val()
};
registerUserModel(userData).then(function (userInfo) {
saveAuthInSession(userInfo);
showHideMenuLinks();
showHomeView();
})
}
关于javascript - 分解为更小的功能 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364221/