在Knockoutjs中使用CouchDB中的JSON数据

在Knockoutjs中使用CouchDB中的JSON数据,couchdb,knockout.js,couchapp,Couchdb,Knockout.js,Couchapp,我试图从knockoutjs中获取示例代码,该代码使用本地Couchdb中的数据运行。 我使用视图从数据库获取任务。As coach返回rows.value.tasks {"total_rows":5,"offset":0,"rows":[ {"id":"216c1717d57aa328b8d3e5a79f0008fe","key":["216c1717d57aa328b8d3e5a79f0008fe",1],"value":{"title":"derde title taak","isDon

我试图从knockoutjs中获取示例代码,该代码使用本地Couchdb中的数据运行。

我使用视图从数据库获取任务。As coach返回rows.value.tasks

{"total_rows":5,"offset":0,"rows":[
{"id":"216c1717d57aa328b8d3e5a79f0008fe","key":["216c1717d57aa328b8d3e5a79f0008fe",1],"value":{"title":"derde title taak","isDone":false}},
我在函数Task(data)中添加了.value,并在var mappedTasks=$.map(allData.rows…初始任务(title,isDone)中添加了.rows,但是我无法再添加新任务。如果我按下add按钮,我会收到一个错误。没有定义值。删除任务的处理不会出错

有人能帮我让这个例子起作用吗? 对我来说,下一步是将任务列表中的更改更新回db。这方面的帮助也是非常受欢迎的

//TaskListViewmodel
功能任务(数据){
this.title=ko.可观察(data.value.title);
this.isDone=ko.可观测(data.value.isDone);
}
函数TaskListViewModel(){
//资料
var self=这个;
self.tasks=ko.observearray([]);
self.newTaskText=ko.observable();
self.incompleteTasks=ko.computed(函数(){
return ko.utils.arrayFilter(self.tasks(),function(task){return!task.isDone()});
});
//操作
self.addTask=函数(){
push(新任务({title:this.newTaskText()}));
self.newTaskText(“”);
};
self.removeTask=函数(任务){self.tasks.remove(任务)};
//从服务器加载初始状态,将其转换为任务实例,然后填充self.tasks
$.getJSON(“http://127.0.0.1:5984/tasks/.../tasks,函数(所有数据){
var mappedTasks=$.map(allData.rows,函数(项){返回新任务(项)});
自我任务(mappedTasks);
}); 
}
应用绑定(新TaskListViewModel,$(“#DataKO”)[0]);

这一行有问题:

self.tasks.push(新任务({title:this.newTaskText()}));

任务构造函数希望数据参数具有“value”属性,但您只提供了“title”。

问题在于这行:

self.tasks.push(新任务({title:this.newTaskText()}));

您的任务构造函数希望数据参数具有“value”属性,但您只提供了“title”。

感谢您查看我的问题。在定义正确的方法时仍然存在问题。self.tasks.push(新任务({value:“value.”,title:this.newTaskText()})可以添加空白任务。);我不确定您所说的空白任务是什么意思。您的任务构造函数希望其参数具有包含title和isDone属性的value属性。因此您需要类似于:
self.tasks.push(新任务({value:{title:self.newTaskText(),isDone:false}))
感谢您查看我的问题。在定义正确的方法时仍然存在问题。self.tasks.push(新任务({value:“value.”,title:this.newTaskText()})可以添加空白任务。);我不确定您所说的空白任务是什么意思。您的任务构造函数希望其参数具有包含title和isDone属性的value属性。因此您需要类似于:
self.tasks.push(新任务({value:{title:self.newTaskText(),isDone:false}));