0

わかりましたので、twitter のブートストラップの typeahead を設定しようとしています。この回答に従いました: Twitter ブートストラップ Typeahead to populate hrefs

しかし、私は取得し続けます:

キャッチされていない TypeError: 未定義の edit-group?id=14:239 のメソッド 'toLowerCase' を呼び出せません $.typeahead.matcher edit-group?id=14:239

そのコードは次のとおりです。

matcher: function (obj) {
    var item = JSON.parse(obj);
    return ~item.title.toLowerCase().indexOf(this.query.toLowerCase())
},

ネットワークタブを調べて、正しいデータが得られるかどうかを確認したところ、次のようになりました。

0: {title:The1Prodigy1, href:1}
href: 1
title: "The1Prodigy1"
1: {title:test_suspend_user, href:4}
href: 4
title: "test_suspend_user"
    2: {title:test_ban_user, href:5}
3: {title:test_delete_user, href:6}
4: {title:user_test_edit, href:7}

最後の質問ですが、href は必要ですか? なぜなら、私がやりたいことは、ユーザーが正しいユーザー名を入力できるようにすることだけだからです。別のページなどにリンクしたくありません。フォーム用です...

編集: item.title のアラートを追加したところ、undefined が返されました...なぜですか?

ありがとう、あら

4

1 に答える 1

0

Typeahead のアイテムsourceがオブジェクトの場合、いくつかのフープをジャンプする必要があります。そうしないと、Bootstrap Typeahead がtoLowerCase()アイテムの比較、アイテムの並べ替えなどを内部的に呼び出そうとするため、そのエラーが発生します。

これを行う方法について、少し前にブログ投稿を公開しました

updaterTypeaheadの関数をオーバーライドしていないだけだと思います。

于 2013-07-21T15:51:56.323 に答える