두 개의 함수 generate
과 test
이 있습니다. 사용자가 generate
버튼을 클릭하면 test
함수가 호출됩니다. 오류는 테스트 기능이 라인에서 발생합니다ko.computed의 값을 반환하는 함수를 전달하십시오.
Pass a function that returns the value of the ko.computed.
:
var unmapped = ko.mapping.toJS(this);
this
이 ko.observable 특성을 가진 내 뷰 모델이다 : 나는 다음과 같은 오류가 발생합니다.
여기에 두 가지 기능이 있습니다. test
의 내용을 generate
으로 옮기면 모든 것이 잘 작동하지만 두 가지 기능을 수행하는 데 필요한 논리가 필요합니다. 내가 무엇을 할 수 있을지?
나는 여기에서 매우 붙어있다. 어떤 도움이라도 크게 평가 받게 될 것입니다.
generate = function() {
if (!omega.validatableFranchiseGeneration.validate()) {
return false;
}
omega.franchiseInfo.IsForGeneration(true);
test();
}
var test = function() {
getIpsAndPorts();
for (var i = 0; i < omega.franchiseInfo.LanguagesInfoViewModel().length; i++) {
if ($.isArray(omega.franchiseInfo.LanguagesInfoViewModel()[i].SubMenuItemsViewModel)) {
omega.franchiseInfo.LanguagesInfoViewModel()[i].SubMenuItemsViewModel = omega.franchiseInfo.LanguagesInfoViewModel()[i].SubMenuItemsViewModel[0];
}
}
var unmapped = ko.mapping.toJS(this);
var jsonData = ko.toJSON(unmapped);
$.ajax({
url: "/franchise/Save",
type: "POST",
// data: ko.toJSON({ folderName: FolderName }),
data: { franchiseInfoViewModel: jsonData },
//traditional: true,
//contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data, textStatus, xhr) {
window.location.href = data.redirectToUrl;
},
error: function (request, status, error) {
jsonValue = jQuery.parseJSON(request.responseText);
omega.franchiseInfo.errorMessages([]);
for (var i = 0; i < jsonValue.errorMessages.length; i++) {
omega.franchiseInfo.errorMessages.push({ errorMessage: ko.observable(jsonValue.errorMessages[i].ErrorMessage) });
}
for (var i = 0; i < omega.franchiseInfo.LanguagesInfoViewModel().length; i++) {
InitializeViewLanguagesInfo(omega.franchiseInfo.LanguagesInfoViewModel()[i]);
}
}
});
}
답장을 보내 주셔서 감사합니다. 나는 내 논리를 리팩터링하고 다른 해결책으로 옮겼다. 그럼에도 불구하고 나는 당신의 대답을 받아들입니다. – Mdb