我与淘汰赛和映射插件试验和奇怪,为什么这是行不通的。 我有我想要使用映射扩展加载一个视图模型
function todoListViewModel(data) {
ko.mapping.fromJSON(data, { todos: TodoItem.options }, self);
ko.mapping.fromJSON(data, { todos: TodoItem.options }, self);
}
映射有如下所示的选项:
var TodoItem = function (options) {
var todoItem = ko.mapping.fromJS(options.data);
todoItem.remove = function () {
alert('remove');
};
return todoItem;
};
TodoItem.options = {
create: TodoItem
};
和JSON数据是这样的:
{
"id": "0",
"todo": "",
"todos": [
{
"todo": "Kevin",
"isDone": true
}
]
}
到映射所述第一呼叫成功,但第二呼叫失败,计算器:(“未捕获的RangeError:超过最大调用堆栈大小”在Chrome)
如果我改变了代码,使我没有通过选项映射,则没有抛出异常。
我也试着简化待办事项构造这个
var TodoItem = function (options) {
var todoItem = {};
return todoItem;
};
但我仍然得到同样的错误。
它看起来像我不能做到这一点,但我想知道为什么吗?