我想运行我的Backbone.Marionette应用程序,但是当我尝试这样做时,它会突破我的代码行( controller.js ):
var appController = new MyController();
MyController
的样子:
var MyController = new Backbone.Marionette.Controller.extend({
showItems: function(options) {
this.collection = new MyCollection();
var self = this;
this.collection.fetch({
success: function(options) {
console.log("SUCCESS");
var myView = new MyCollectionView({
collection: self.collection
});
options.region.show(myView);
},
error: function(options) {
console.log("FAILED");
}
});
}
});
,它显示以下错误消息:
Uncaught TypeError: r.apply is not a function
如果我看到此错误的详细信息,则会从 backbone-min.js (第1884行)中删除此代码的else
。
// The constructor function for the new subclass is either defined by you
// (the "constructor" property in your `extend` definition), or defaulted
// by us to simply call the parent constructor.
if (protoProps && _.has(protoProps, 'constructor')) {
child = protoProps.constructor;
} else {
child = function(){ return parent.apply(this, arguments); };
}
然后,看看这个,您可以看到错误从我的代码开始,如下图所示。
我尝试将代码行更改为:
var appController = MyController();
它显示了相同的错误,但现在的区别是它只在backbone.js代码(同一行)中断,这真的很奇怪。
答案 0 :(得分:0)
感谢Emile,我按照你的指示,但现在抛出了 在backbone.marionette.js代码中出现以下错误:
backbone.marionette.js:19 Uncaught TypeError: Cannot use 'in' operator to search for 'default' in undefined
错误很容易发现,因为它指向Marionette code中的以下行:
Radio = 'default' in Radio ? Radio['default'] : Radio;
这意味着Radio
未定义。
Marionette需要
花点时间阅读有关如何开始使用每个lib的文档。它真的会节省你的时间。
答案 1 :(得分:0)
从模态中删除新的关键字,仅在实例化模态时使用new
var MyController = Backbone.Marionette.Controller.extend({
var appController = new MyController();