ui-select2 から呼び出される select2 ドロップダウンがあります。ajax 呼び出しを行うカスタム クエリ関数があります。
これが私の問題です。ajax 呼び出しが 401 を取得した場合 (たとえば、ユーザー セッションがタイムアウトした場合)、アプリ全体のハンドラーは、ユーザーをログイン ページ (実際にはページ全体ではなく、部分的なもの) にインテリジェントに再ルーティングしますが、select2 によって制御されるドロップダウンまだそこにあり、コールバックを待っています。
ドロップダウンで空の結果を送信しても、query.callback({results:[]})
「結果が見つかりません」と表示されます。
select2 に「このクエリ リクエストのことは忘れて、とりあえず立ち去ってください」と伝えるにはどうすればよいですか?
サンプルコード:
query: function(q) {
var s = q.term;
User.query({name:s},function(users) {
q.callback({results:users}); // THIS WORKS FINE
}, function(res) {
if (res.status === 401) {
// WHAT DO I DO HERE?
// to tell select2 "hide your drop-down, you are not relevant anymore
}
};
}
問題は、ユーザーが (実際には部分的に) ログインにリダイレクトされたとしても、私がそれを言わないと、ドロップダウンが残ることです。