我需要测试一个 JavaScript 项目。描述了几个模块,但是当我尝试加载它们时出现了问题。
define([
'core/BaseModel'
],
function (BaseModel) {
var MessageModel = BaseModel.extend({
defaults: {
messageType: "Advertisment",
receiver: "me",
title: "Title",
heading_1: "Heading1",
heading_2: "Heading2"
},
url: function () {
var base = this.apipath + '/companies/';
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;
}
});
return MessageModel;
});
要加载模块,我这样做:
var message;
beforeAll(function(done){
require(['../../../public/js/app/models/Message'], function(Message){
message = Message;
done();
});
});
现在消息不是未定义的,但是当我测试是否定义了 message.defaults 或 message.url 时,这失败了。哪里出了问题?
最佳答案
鉴于 ../../../public/js/app/models/Message 对应于 MessageModel
,什么你要做的是:
var Message = require('../../../public/js/app/models/Message');
并创建一个新实例:var m = new Message();
希望这对您有所帮助。
关于javascript - 如何正确使用 RequireJS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820214/