2012-02-24 3 views
1

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

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 Вид:

// 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' 
    } 
}); 

ответ

2

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

require.config({ 
    'paths': { 
     "underscore": "libs/underscore", 
     "backbone": "libs/backbone", 
     "Mustache": "libs/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

Спасибо @ jcreamer898, но у меня уже есть, что в моих main.js. Я добавлю это к моему вопросу. – Randy

+0

Итак, я думаю, это означает, что вы еще не разобрались, а? – jcreamer898

+0

Нет, что приводит меня к чему-то, что я хотел бы задать в вопросах, которые, как я знаю, является ли модуль безопасным для AMD или нет? – Randy

2

Clone хранилище из GitHub:

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

Затем построить RequireJS конкретную версию библиотеки:

$ rake requirejs 

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

0

Используйте Twitter's mustache repository!

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

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