我试图通过Backbone.js使我的Backbone.js组件,模型和视图模块化。但是每当我尝试require()
时,它都会返回:
function (){return i.apply(this,arguments)}
而不是我需要的Backbone魔法。
我已经设置了我的Require.js:
// Configure require.js
require.config(
{
paths: {
"data": "config"
, "jquery": "libs/jquery.min"
, "underscore": "libs/underscore-min"
, "backbone": "libs/backbone-min"
, "events": "collections/events"
, "eventModel": "models/eventModel"
, "eventView": "views/eventView"
}
, shim: {
underscore: {
exports: '_'
}
, jquery: {
exports: '$'
}
, backbone: {
deps: ["underscore"]
, exports: "Backbone"
}
}
}
);
// Initiate app
require(
[
"data"
, "jquery"
, "underscore"
, "backbone"
, "events"
, "eventModel"
, "eventView"
], function(data, $, _, Backbone, Events, EventModel, EventView) {
console.log(Events);
_.each(["data/general.xml"], function(URI) {
var general = new Events({url: URI});
});
}
);
这是我的集合/ events.js:
define(
[
"backbone"
, "eventModel"
]
, function(Backbone, EventModel) {
"use strict";
var Events = Backbone.Collection.extend({
model: EventModel
, parse: function(data) {
var parsed = [];
$(data).find('Event').each(function(index) {
parsed.push({
title: $(this).find('title').text(),
date: $(this).find('date').text(),
content: $(this).find('content').text()
});
});
return parsed;
}
, fetch: function(options) {
options = options || {};
options.dataType = "xml";
Backbone.Collection.prototype.fetch.call(this, options);
}
});
return Events;
}
);
我希望返回Events
集合,但显然不是。谁能看到我做错了什么?
答案 0 :(得分:1)
一切似乎都很好。你看到了什么:
function (){return i.apply(this,arguments)}
是您班级的构造函数。不要理会它。相反,请尝试记录new myClass
。
修改强>
您没有看到任何方法,因为它们存储在您的类的原型中。调用的 i 函数是“真正的”构造函数(名为 i ,因为它已被缩小)。