无法使用带有typeahead.js的下划线模板

时间:2013-08-29 06:01:59

标签: underscore.js bootstrap-typeahead typeahead.js

我正在使用带有下划线模板的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;
        }
    }
});

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

  

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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;
            }
        }
    });