javascript - 简单的 jQuery 和 Knockout.js 示例

标签 javascript jquery ajax knockout.js

我正在浏览this tutorialknockout.js 网站上。我在第 2 步(共 5 步)中遇到了问题。

有一个代码块是这样的:

// 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);
};

我的问题是,我不明白 jQuery 如何处理 $.get 的第三个参数。据我所知(通过阅读 the docs ),第三个参数是成功函数。然而, self.chosenFolderData 似乎并非如此。

知道为什么这有效吗?

最佳答案

self.chosenFolderData 一个函数:所有 KO 可观察量都是函数; details in the KO docs 。当您调用可观察量并传入参数时,您就设置了可观察量的值。这正是 get 对成功回调所做的事情。

<小时/>

旁注:

To my knowledge (and from reading the docs), the third argument is a success function.

成功回调不一定是您传递的第三件事。这是您引用的示例中的内容,但不一定。它可能是第二个,或者如果您没有传递任何成功回调,则第三个可能是 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 )

关于javascript - 简单的 jQuery 和 Knockout.js 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019085/

相关文章:

javascript - 我们可以让一个变量在 Javascript 中充当 getter 吗?

javascript - 为什么有些 ajax 按钮不起作用?

javascript - typescript : Is there a way to get all the keys in a Javascript object with nested properties?

jquery - Anythingslider 问题 - 标题定位

javascript - 当用户上下滚动页面时,让一个小箭头从左向右移动

jquery - 在哪里编写 Bower 代码来安装 Alertify?

php - Ajax/PHP 登录表单 - 使用 PhoneGap 开发 Android 应用程序(Jquery.mobile)

php - 如何在加载内容时保持div的滚动位置稳定

javascript - 我正在测试 ArrayBuffer 并想知道为什么结果看起来像这样 :

javascript - 将python的json对象转换为html表?