我是Yeoman的新手,我使用generator-backbone生成了一个Backbone应用程序
这是我的main.js(需要js配置)
/*global require*/
'use strict';
require.config({
shim: {,
handlebars: {
exports: 'Handlebars'
}
},
paths: {
jquery: '../bower_components/jquery/dist/jquery',
backbone: '../bower_components/backbone/backbone',
underscore: '../bower_components/lodash/dist/lodash',
handlebars: '../bower_components/handlebars/handlebars'
}
});
require([
'backbone'
], function (Backbone) {
Backbone.history.start();
});
现在我使用 yo backbone:view Login 创建了一个视图
这是生成的视图
define([
'jquery',
'underscore',
'backbone',
'templates'
], function ($, _, Backbone, JST) {
'use strict';
var LoginViewView = Backbone.View.extend({
template: JST['app/scripts/templates/LoginView.hbs'],
tagName: 'div',
id: '',
className: '',
events: {},
initialize: function () {
this.listenTo(this.model, 'change', this.render);
},
render: function () {
this.$el.html(this.template(this.model.toJSON()));
}
});
return LoginView;
});
当我使用LoginView运行应用程序时,我收到错误
Error: Script error for: templates http://requirejs.org/docs/errors.html#scripterror
显然我看到 templates 没有在main.js中定义的位置 . 运行自耕农发电机时我错过了什么
1 回答
如果你像m那样犯了同样的错误,那就试试吧
生成代码后,如果其显示模板未定义或您发现缺少template.js,请检查以下步骤
运行 grunt handlebars (如果要忽略任何警告/错误,请包括
--force
)这将预编译.hbs文件制作单个
template.js
文件 .但是这里的问题是,它不会开箱即用,template.js写在
app/.tmp/scripts/template.js
位置 .您可以相应地修改main require配置文件,或者打开
GruntFile.js
并修改此功能还要验证你是否在GruntFile.js中有这一行
如果没有,最后添加它(当然不是在功能块之后)