javascript - 自动完成 : how to pass an extra parameter to the response callback

标签 javascript jquery jquery-ui requirejs

<分区>

我在看下面的例子 scottgonzalez / jquery-ui-extensions

我需要自定义 source callback,它需要两个 argumnets requestresponse 用于自动完成。

我的问题如下: 如何将额外参数传递给源回调以便根据自动完成中定义的变量过滤数据? 示例:

currentUser = false -> 我需要从源中排除 currentUser。

这是我的代码 (1) (2)。
请查看评论以更好地理解我的要求。
谢谢。


(1)

// autocomplte.js
define([
   'jquery',
   'matcher'
], function ($, matcher) {
    "use strict";
    var autoComplete = function (element, options) {
        console.log(options);  // {isCurrentUser: true}
        element.autocomplete({
            minLength: 3,
            autoFocus: true,
            source: matcher // this is a callback defined 
                            // in matcher.js
        });
        // other codes;
     }
});

(2)

// matcher.js
define([
    'jquery',
    'users',
    'jqueryUi'
], function ($, UserCollection) {
    "use strict";

    var userCollection,
        matcher;

    matcher = function (request, response, options) { // how can I pass 
                                                      // an extra parameter 
                                                      // to this callback?
        console.log(options); // undefined it should be {isCurrentUser: true}
        userCollection = new UserCollection();
        var regExp = new RegExp($.ui.autocomplete.escapeRegex(request.term), 'i');
        response(userCollection.filter(function (data) {
            return regExp.test(data.get('first_name'));
        }));
    };

    return matcher;
});

最佳答案

您可以将“匹配器”的调用包装到函数中:

source: function(request, response) { 
   return matcher(request, response, {isCurrentUser : true}); 
} 

关于javascript - 自动完成 : how to pass an extra parameter to the response callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11501619/

相关文章:

javascript - jQuery 事件和触发器的顺序

JQuery 可对 Bootstrap 行进行排序

asp.net-mvc-3 - 检索发布到 jquery 对话框的数据

javascript - 为什么 ES6 “get” 没有 “Set” 方法?

javascript - 使用javascript按值获取选择选项

javascript - 从 jquery-json 检索数据到 python

javascript - 单击标题外侧的跨度时如何打开 Accordion

javascript - 如何使用带有复选框的多选下拉菜单

javascript - 在 jquery 对话框中将 <li> 值附加到 <ul> 不起作用

php - jQuery 将外部脚本丰富的 PHP 文件加载到本地页面