私はこのコードを持っています:
self.EditItemPopup = function (something) {
var temp = ko.mapping.toJS(something);
//self.ItemToEdit = ko.mapping.fromJS(temp, EditItem, self.ItemToEdit);
ko.mapping.fromJS(temp, EditItem,self.ItemToEdit);
self.FindMatchingCategory(something.CategoryID());
$("#editItemPopup").dialog("open");
};
self.FindMatchingCategory = function (categoryID) {
ko.utils.arrayForEach(self.ViewModel().Categories(), function (categoryToFind) {
if (categoryToFind.CategoryID() == categoryID) {
self.ItemEditCategory(categoryToFind);
}
});
};
self.EditItemPopup が一度呼び出されると、すべて正常に動作しますが、2 回目に呼び出されると、次のエラーが発生します: Uncaught RangeError: Maximum call stack size exceeded
誰かが問題がどこにあるか教えてもらえますか?
ありがとう!
編集:
EditItem マッピング:
var EditItem = {
ItemName: ko.validatedObservable().extend({
required: {
message: "Please enter an item name.",
insertMessages: false
}
}),
ItemCost: ko.validatedObservable().extend({
required: {
message: "Please enter a valid price.",
insertMessages: false
}
}),
CategoryID: ko.observable()
};