Текстовый плагин RequireJs не загружает шаблон в DOM

Я создаю приложение с магистралью/RequireJs на переднем конце и узлом/экспрессом на бэкэнде. Все написано на CoffeeScript. У меня проблемы с загрузкой файлов шаблонов HTML вместе с текстом! плагин.

Моя конфигурация выглядит следующим образом:

  require.config 
    paths:
      app:              'app'  
      jquery:           'libs/jquery-1.7.1'
      jqueryTmpl:       'libs/jquery.tmpl'
      jqueryUI:         'libs/jquery-ui-1.8.18.custom.min'
      underscore:       'libs/underscore.amd'
      order:            'libs/order'
      backbone:         'libs/backbone.amd'
      handlebars:       'libs/handlebars'
      bootstrap:        'libs/bootstrap/js/bootstrap'
      marionette:       'libs/backbone.marionette'
      modelbinding:     'libs/backbone.modelbinding'
      validation:       'libs/backbone.validation'
      jqueryQtip:       'libs/jquery.qtip'
      utils:            'utils'
      jqueryDatatables: 'libs/datatables/jquery.dataTables'
      DT_bootstrap:     'libs/datatables/DT_bootstrap'
      user_maintenance: 'templates/tmpl.user.maintenance'

  require [
      "require",
      "jquery",
      "underscore",  
      "backbone",  
      "order!jqueryTmpl",
      "order!marionette",
      "order!validation",
      "app"
  ]

Это начало одного из моих представлений: -

define (require) ->

  Backbone = require 'backbone'
  Backbone.ModelBinding = require 'modelbinding'
  require 'jqueryUI'
  require 'jqueryQtip'

  require '../../scripts/text!user_maintenance.html'
  Utils = require '../../scripts/Utils.js' 

  class UserMaintenanceView extends Backbone.Marionette.ItemView
    template: "#tmpl-user-maintenance"
    className: "row"
    .
    .
    .

Если я посмотрю на вкладку сети в инструментах разработчика Chrome, файл /scripts/templates/tmpl.user.maintenance.html был загружен через файл GET. При нажатии на нее отображается содержимое, которое выглядит так. (Я удалил содержимое для краткости, это просто HTML)

<script type="text/x-jquery-tmpl" id="tmpl-user-maintenance">

</script>

Я не получаю никаких ошибок сценария, но шаблон не отображается в DOM, и мое представление не отображается. Если я просто вставлю HTML-шаблон в основной HTML-файл и не буду пытаться загрузить текстовый плагин, все будет работать нормально. Но я хочу разбить свои шаблоны на отдельные файлы.

Любая идея, что я делаю неправильно?


person Simon Lomax    schedule 27.03.2012    source источник


Ответы (2)


Плагин text! не вводит текст в DOM, он только загружает данный файл, и вы должны обрабатывать его содержимое. См. http://requirejs.org/docs/api.html#text для получения дополнительной информации. .

person nikoshr    schedule 27.03.2012
comment
Спасибо, Никошр, я несколько раз просматривал эту документацию, но явно не читал комментарии в коде. - person Simon Lomax; 27.03.2012

Вам нужно будет назначить/добавить возвращенный HTML из вызова шаблона в DOM.

Пример:

$('.someClass').html(Template, {}); // where {} === the data object for the template
person Benjamin Dean    schedule 17.07.2012