简单的jQuery和Knockout.js示例

时间:2017-10-30 15:36:22

标签: javascript jquery ajax knockout.js

我正在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似乎不是那样。

有关为什么这有效的任何见解?

1 个答案:

答案 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 )