👮
jquery.atwhoの補完がundefinedになるならisPlainObjectの罠に注意
@armorik83 です。いま業務で扱っている機能にjqeury.atwhoというプラグインを導入しているが、補完候補の全項目がundefined
になるというバグを踏んで解消に 2 時間程度持って行かれたので、ここで共有しておく。
if ($.isPlainObject(item)) {
results.push(item);
} else {
results.push({
name: item,
});
}
$.isPlainObject(item)
で検証していて、else
なら勝手にname
プロパティでネストする。そのため hash が一致せずundefined
になるという仕組み。
解決方法は自アプリ側にてJSON.parse(JSON.stringify(item))
として一律で強制的にキャストするのが簡単。単純なのに消耗する罠だった。
Discussion