我正在find
网站上浏览this tutorial。我在第5步中遇到了一个问题。
这是一段代码:
knockout.js
我的问题是,我不知道jQuery如何处理// Data
var self = this;
self.folders = ['Inbox', 'Archive', 'Sent', 'Spam'];
self.chosenFolderId = ko.observable();
self.chosenFolderData = ko.observable();
// Behaviours
self.goToFolder = function(folder) {
self.chosenFolderId(folder);
$.get('/mail', { folder: folder }, self.chosenFolderData);
};
的第三个参数。据我所知(以及阅读the docs),第三个参数是成功函数。但是,$.get
似乎不是那样。
有关为什么这有效的任何见解?
答案 0 :(得分:2)
self.chosenFolderData
是一个函数:所有KO observable都是函数; details in the KO docs。当你调用一个observable并传入一个参数时,你可以设置observable的值。这正是get
对成功回调的影响。
旁注:
据我所知(以及阅读文档),第三个参数是成功函数。
成功回调并不一定是你传递的第三件事。在您引用的示例中,但并非必然。它可能是第二个,或者如果你没有通过任何成功回调,第三个可能是dataType
。
文档中jQuery.get
显示的签名是:
jQuery.get( url [, data ] [, success ] [, dataType ] )
[...]
表示可选参数。这意味着您可以执行以下七种不同组合中的任何一种:
jQuery.get( url )
jQuery.get( url , data )
jQuery.get( url , data , success )
jQuery.get( url , success
jQuery.get( url , success , dataType )
jQuery.get( url , data , dataType )
jQuery.get( url , data , success , dataType )