2014-10-21 1 views
-1

Что я сделал неправильно, пытаясь использовать Ручки здесь?Ручки не соответствуют требованиям Претензии Я не передаю строку

HTML

<!DOCTYPE html> 
<html> 
<head> 
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script> 



</script> 
<script src="//code.jquery.com/jquery.min.js"></script> 
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> 
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0/handlebars.js"></script> 
    <meta charset="utf-8"> 
    <title>JS Bin</title> 
</head> 
<body> 
    <div class="_conv_logo_login_container"> 

    </div> 
</body> 
</html> 

    <script type="text/x-handlebars-template" id="tools_links_template"> 

    <ul class="dropdown-menu" role="menu"> 

    {{#tools_links}} 

    <li> 

     <a id="{{id}}" href="{{href}}">{{human_readable}}</a> 

    </li> 

    {{/tools_links}} 


    </ul> 

JS

var data = { 
    "tools_links": [ 
     { 
      "id": "assignments", 
      "human_readable_report": "Assignments", 
      "href": "site.com/assignments", 
      "attrs": { 
       "data-order": 1 
      }, 
      "submenu": "" 
     }, 
     { 
      "id": "reporting", 
      "human_readable": "Reporting", 
      "href": "site.com/reporting", 
      "attrs": { 
       "data-order": 2 
      }, 
      "submenu": "" 
     } 
    ] 
}; 


var source = $("#tools_links_template").html(); 
var template = Handlebars.compile(source); 

$("._conv_logo_login_container").html(template(data)); 

Я продолжаю получать сообщение об ошибке:

Uncaught Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed undefined 

Я пытался {{#with tools_links}} и просто {{items}}.

JSBIN

+0

Должен также включать HTML-код в вопрос - вот где шаблон. – Luke

+0

Отредактировано. HTML находится в jsbin, но ссылку трудно заметить. Не так много различий между ссылками на SO и текстом. –

ответ

0

Две проблемы:

  1. Ваш шаблон не внутри из <html></html> тегов. Поместите шаблон <script> тег внутри <head> или в нижней части <body>.
  2. Ваш шаблон не имеет знака </script>.

JQuery ищет элементов в <head> и <body>, а не в весь текст в HTML-файл.

+0

Полезно знать, спасибо. – 1252748

Смежные вопросы