Ошибка загрузки модуля AMD с усами при использовании RequireJS - PullRequest
1 голос
/ 25 февраля 2012

Я слежу за туториалом: http://backbonetutorials.com/organizing-backbone-using-modules/, и все, что я хотел бы сделать, это использовать Mustache вместо underscore.js для моего движка шаблонов в Backbone View. Все работает как положено, пока я не попытаюсь сделать замену усов. Firebug дает мне это:

Load timeout for modules: Mustache

Моя обертка для усов (в libs/mustache/mustache-wrap.js) выглядит так:

define(['libs/mustache/mustache'], function(){
  // Tell Require.js that this module returns a reference to Mustache
  return Mustache;
});

Вот код для моего Backbone View:

// Protocol Detail View
define([
  'jQuery',
  'Underscore',
  'Backbone',
  'Mustache',
  'collections/protocols',
  'text!templates/protocol/protocoldetail.html'
], function($, _, Backbone, Mustache, protocolCollection, protocolDetailTemplate){

    var protocolDetailView = Backbone.View.extend({

        el: "#asset-detail",
        render: function( pid ){
            this.collection = new protocolCollection;
            this.collection.fetch();
            var p = this.collection.getByCid('c'+pid);
            var template = "{{name}}";
            htmlr = Mustache.to_html(template, p);
            $(this.el).html(htmlr);
            //var compiledTemplate = _.template( protocolDetailTemplate, { protocol: protocol });
            //$(this.el).html(compiledTemplate);

        },

        events: {
            "submit #asset-owner": "chown"
        },

        chown: function ( pid ){
            console.log("Protocol Detail View chown callback.")
        }
    });

    return new protocolDetailView;
});

Мой main.js файл имеет следующую конфигурацию:

require.config({
    paths: {
      jQuery: 'libs/jquery/jquery',
      jQueryUI: '//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.17/jquery-ui.min',
      jstree: 'libs/jstree/jquery.jstree',
      Mustache: 'libs/mustache/mustache-wrap',
      Underscore: 'libs/underscore/underscore',
      Backbone: 'libs/backbone/backbone'
  }
});

Ответы [ 3 ]

2 голосов
/ 24 марта 2012

Клонируйте репозиторий из github:

$ git clone https://github.com/janl/mustache.js.git

Затем создайте версию библиотеки для RequireJS:

$ rake requirejs

Используйте полученный файл 'requirejs.mustache.js' в качестве библиотеки усов.

2 голосов
/ 25 февраля 2012

В вашем файле main.js, в котором есть все, что вам нужно, обязательно добавьте Mustache в конфигурацию, не беспокойтесь об оболочке и попробуйте загрузить непосредственно Mustache.* Это может помочь ...

Кроме того, вот несколько стартовых приложений, которые помогут вам в вашем требовании, путешествие по магистрали.

https://github.com/jcreamer898/RequireJS-Backbone-Starter
https://github.com/david0178418/BackboneJS-AMD-Boilerplate
https://github.com/addyosmani/backbone-fundamentals
https://github.com/amdjs

0 голосов
/ 10 августа 2012

Использование Хранилище усов Twitter !

Вот что у меня сработало (Ubuntu 12.04):

sudo apt-get install rake ruby-rspec
git clone git://github.com/twitter/mustache.js.git
cd mustache.js/
rake requirejs
...