1

私は次の例を探していましたscottgonzalez/jquery-ui-extensions

をカスタマイズする必要があります。これは、2つの引数とオートコンプリートsource callbackを想定しています。requestresponse

私の質問は次のとおりです。オートコンプリートで定義された変数に従ってデータをフィルタリングするために、ソースコールバックに追加のパラメーターを渡すにはどうすればよいですか?例:

currentUser=false->現在のユーザーをソースから除外する必要があります。

これが私のコードです(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;
});
4

1 に答える 1

2

「マッチャー」の呼び出しを関数にラップするだけです。

source: function(request, response) { 
   return matcher(request, response, {isCurrentUser : true}); 
} 
于 2012-07-16T09:40:17.853 に答える