Как использовать шаблоны с Backbone.js для расширения Chrome в манифесте версии 2

Я пытаюсь использовать шаблоны для своих основных представлений. Я попробовал это с underscore.template, чтобы запустить его. Проблема в том, что начиная с манифеста _версии 2 расширений Chrome существуют некоторые ограничения безопасности. Я думаю, причина в том, что встроенные блоки больше не разрешены. В этом небольшом примере я загружаю шаблон и пытаюсь его отобразить. Затем я получаю сообщение об ошибке:

Uncaught Error :Генерация кода из строк, запрещенных для этого контекста.

Я попробовал это также с Handlebars.js и шаблоном прямо в моем файле html -. Он работает в обычном окне браузера -. Но это не расширение для Chrome.

Итак, как я могу использовать шаблоны с backbone.js в расширении Chrome с манифестом _версии 2?

С подчеркиванием (не работает):

define [
  'jquery'
  'backbone'
  'lib/facade'
  'text!templates/loginTemplate.js'
],
($, Backbone, facade, LoginTemplate) ->
  'use strict'
  class LoginView extends Backbone.View
    tagName: 'div'
    events: {

    }

    initialize: (options) ->
      @el = options.el

    render: ->
      console.log 'LoginView: render()'
      $(@el).html(_.template(LoginTemplate, {}))

с рулем (не работает):

шаблон в index.html:

<!-- templates -->
  <script id="loginTemplate" type="text/x-handlebars-template">
    <form class="form-horizontal">
      <fieldset>
        <legend>Login</legend>
        <div class="control-group">
          <label class="control-label" for="email">Email:</label>
          <div class="controls">
            <input type="text" class="input-xlarge" id="email" name="email">
          </div>
        </div>
        <div class="control-group">
          <label class="control-label" for="password">Passwort:</label>
          <div class="controls">
            <input type="password" class="input-xlarge" id="password" name="password">
          </div>
        </div>
        <div class="form-actions">
          <button type="submit" class="btn btn-primary">Login</button>
        </div>
      </fieldset>
    </form>
  </script>

и на мой взгляд:

define [
  'jquery'
  'backbone'
  'lib/facade'
],
($, Backbone, facade) ->
  'use strict'
  class LoginView extends Backbone.View
    tagName: 'div'    
    events: {

    }

    initialize: (options) ->
      @el = options.el

    render: ->
      console.log 'LoginView: render()', $("#loginTemplate")
      $(@el).html(Handlebars.compile($("#loginTemplate").html()))
5
задан mu is too short 2 July 2012 в 19:08
поделиться