1

検索にバックボーン フィルターを使用しています。以下はコレクション内の私のコードです。

search : function(data){

    var pattern = new RegExp(data,"gi");
    return (this.filter(function(model) {
        console.log("found match in "+ (model.get("name")).match(pattern));
        return pattern.test(model.get("name"));
    }));
}

以下は私のコードです:

render: function () {
    var data = new GroupCollection(this.collection.search(searchData)).toJSON();
    var html = this.template(data);
    this.$el.html(html);
    return this;
},

上記の検索コードは正常に機能しています。

結果の検索データを強調表示したいのですが、これを行う方法が見つかりません。

検索データを取得しています。しかし、下の画像のように一致したテキストを強調表示することはできません。

ここに画像の説明を入力

正規表現で一致を使用すると、一致したテキストを取得できますが、それをテンプレートでどのように表示できますか。

4

1 に答える 1

1

このjsFiddleを参照してください

Handlebars.registerHelperを使用する

サンプルコード:

Handlebars.registerHelper('fullName', function(name) {
    var searchString = 'com'; //$("#txtSearch").val();

    var dom = name.replace(searchString, '<span style="color: red">' 
                                         + searchString + '</span>');
    return new Handlebars.SafeString(dom);
});
于 2013-07-25T11:26:04.923 に答える