1

我正在使用带有下划线模板的 typeahead.js。

我的代码

this.$("#search-box").typeahead({
    name: 'notes'
    , valueKey: 'Title'
    , template: '<div class="tt-suggestion"><p class="notes-creator-typeahead" style="white-space: normal;"><%= Title %></p></div>'
    , remote: {
        url: '/Notes/Search?query=%QUERY',
        filter: function (response) {
            console.log(response);
            var arr = [];
            for (var i = 0; i < response.length; i++) {
                var item = new Object();
                item.Id = response[i].Id;
                item.Title = response[i].Title;
                arr.push(item);
            }
            return arr;
        }
    }
});

它不起作用,它给了我以下错误

未捕获的错误:未指定模板引擎

我该如何解决 ?

4

1 回答 1

2

阅读此https://github.com/tcrosen/twitter-bootstrap-typeahead/issues/20

这是我现在使用的,它有效,唯一的改变是而不是

template: '<div class="tt-suggestion"><p class="notes-creator-typeahead" style="white-space: normal;"><%= Title %></p></div>'

我现在正在使用

template: _.template('<div class="tt-suggestion"><p class="notes-creator-typeahead" style="white-space: normal;"><%= Title %></p></div>')

这是完整的代码

this.$("#search-box").typeahead({
        name: 'notes'
        , valueKey: 'Title'
        , template: _.template('<div class="tt-suggestion"><p class="notes-creator-typeahead" style="white-space: normal;"><%= Title %></p></div>')
        , remote: {
            url: '/Notes/Search?query=%QUERY',
            filter: function (response) {
                console.log(response);
                var arr = [];
                for (var i = 0; i < response.length; i++) {
                    var item = new Object();
                    item.Id = response[i].Id;
                    item.Title = response[i].Title;
                    arr.push(item);
                }
                return arr;
            }
        }
    });
于 2013-08-29T06:12:00.910 回答