Как сделать так, чтобы Caja сохраняла текст шаблона внутри тега сценария?


Я пытался понять, могу ли я использовать ICanHaz или Handlebars для создания боковой панели моего дополнения Google Docs. Однако оказывается, что Caja удаляет фактический HTML из тега моего скрипта. Есть ли способ предотвратить это?

Давайте просто скажем, что мой шаблон руля будет следующим:

<script id="user" type="text/x-handlebars-template">
  <li>
    <p class="name">Hello I'm {{ name }}</p>
  </li>
</script>

Тогда в настоящее время, во время выполнения это так:

<script id="user-caja-guest-0___" data-caja-type="text/x-handlebars-template"></script>

Таким образом, даже если я могу посмотреть его с помощью $('#user").html(), он просто даст мне пустой шаблон. Является есть способ помешать Кайе сделать это?

2 3

2 ответа:

Caja в настоящее время не поддерживает сохранение содержимого элементов <script> в любом случае, а также предполагает, что весь текст скрипта является JavaScript. Это было бы возможно, но нетривиально поддерживать. Если вам нужна эта функция, пожалуйста, отправьте запрос на нее .

Похоже, это работает для руля.Джей с Кайей.

Разметка шаблона (без тега скрипта + скрытие div)

<div id="entry-template" class="header" style="display: none">
    <h1>{{title}}</h1>
    <div class="body">
      {{body}}
    </div>
</div>

Тогда ваш сценарий

var source = $("#entry-template").html();
var template = Handlebars.compile(source);
var context = {title: "My New Post", body: "This is my first post!"};
alert(template(context));

И получаем

<h1>My New Post</h1>
<div class="body">
  This is my first post!
</div>