为什么我的Handlebar lib不会加载? - Requirejs

时间:2013-11-06 11:07:09

标签: backbone.js requirejs handlebars.js

我正在尝试在Backbone项目中使用requirejs-hbs lib。我在同一个文件夹中有Handlebars lib和requirejs-hbs lib。它们在config中声明为相同。当我查看chrome选项卡中的源代码时,我只收到require-hbs脚本,我没有收到handlebars脚本。这是我的配置文件:

require.config({
  hbs: {
    templateExtension: '.hbs'
  },
  paths: {
    backbone: "libs/backbone/backbone",
    Handlebars: 'libs/handlebars/handlebars.amd',
    hbs: 'libs/requirejs-hbs/hbs',
    jquery: 'libs/jquery/jquery',
    underscore: 'libs/underscore/underscore'
  },
  shim: {
    backbone: {
      deps: [
        'underscore',
        'jquery'
      ],
      exports: 'Backbone'
    },
    underscore: {
      exports: '_'
    }
  }
});

require(['js/router/easier.view'], function(View) {
  'use strict';

  var view = new View();
});

以下是我尝试访问模板的视图。

define(function(require) {
  'use strict';

  var Backbone = require('backbone');
  var testTemplate = require('hbs!views/test.hbs');

  var router = Backbone.View.extend({
    render: function() {
      debugger;
    }
  });

  return router;
});

我得到的错误是GET http://localhost:9000/handlebars.js 404 (Not Found)。我有其他我声明的文件,但我没有handlebars.js。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在创建Handlebars的路径,但如果您查看 requirejs-hbs 的来源,则会看到它使用handlebars

因此,要么将 requirejs-hbs 来源更改为Handlebars,要么将路径更改为handlebars

应该工作。