【发布时间】:2014-05-07 16:20:25
【问题描述】:
Code blow 不起作用,错误消息是:
未捕获的错误:模块名称 “文本!模板/bookTemplate.html_unnormalized2”尚未加载 然而对于上下文:_。使用 require([])
define(['backbone', 'underscore', 'jquery'], function (Backbone, _, $) {
var bt = require('text!templates/bookTemplate.html');
var BookView = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
var template = _.template(bt, {
name: 'secret book'
});
this.$el.html(template);
}
});
return BookView;
});
然后我将“text!templates/bookTemplate.html”移动到define(),它可以工作!以下是工作代码:
define(['backbone', 'underscore', 'jquery',
'text!templates/bookTemplate.html'], function (Backbone, _, $, bt) {
// var bt = require('text!templates/bookTemplate.html');
var BookView = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
var template = _.template(bt, {
name: 'secret book'
});
console.info('template', template);
this.$el.html(template);
}
});
return BookView;
}); // it is working
据我了解, require() 和 define() 在加载模块时是相同的。这个对吗?你能帮我解释一下为什么它在define中起作用而在require()中不起作用吗?
【问题讨论】:
标签: requirejs