我正在使用 ASP.net Web API 和 knockout.js。基本上我只是接受这个:
http://learn.knockoutjs.com/#/?tutorial=webmail
并且只使用 web api 作为后端。到目前为止,除了实际显示数据之外,我已经完成了所有工作。我不断收到:
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: mails is not defined;
Bindings value: foreach: mails
所以在有人问“它定义好了吗?”之前,不,这不是因为看教程(这里有更好的图片):
http://jsfiddle.net/rniemeyer/PKDdG/
任何地方都没有定义“邮件”。所以它必须与如何从 Web API 返回数据有关。下一个问题是:“你要返回 JSON 吗?”,为什么是的,我是:
[{"id":1,"folder":"Index","from":"Ronald.McDonald@mcdonalds.com","to":"grimace@mcdonalds.com","date":"05/29/2013","subject":"Someone stole the hamburgers","messageContent":"I believe we have a thief in the mix. We need to check hamburglars pockets"}]
因此,如果有人对这里可能发生的事情有任何想法,我愿意提出建设性的建议。:)
按照要求:
Sammy(function () {
this.get('#:folder', function () {
self.chosenFolderId(this.params.folder);
self.chosenMailData(null);
$.get("api/mails", { folder: this.params.folder }, function (data) {
self.chosenFolderData({ mails: data });
});
});
this.get('#:folder/:mailId', function () {
self.chosenFolderId(this.params.folder);
self.chosenFolderData(null);
$.get("api/mails", { mailId: this.params.mailId }, self.chosenMailData);
});
this.get('', function () { this.app.runRoute('get', '#Inbox') });
}).run();
};