2013-08-29 54 views
1

我正在使用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; 
     } 
    } 
}); 

這是行不通的,這是給我下面的錯誤

Uncaught Error: no template engine specified

我該如何解決這個問題?

回答

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; 
      } 
     } 
    });