javascript - 我如何处理主干路由器的这个错误?

标签 javascript jquery backbone.js underscore.js

这是我的 application.js 文件

window.App = {
init: function() {
     this.router = new PackageViewer();
       Backbone.history.start();
   }

};

这是调用这里的另一个 packageviewer.js

window.PackageViewer = new Backbone.Router.extend({
 routes : {
   '':'home'
},

initialize:function(){
   this.collection = new Package();
},

home:function(){
   $('body').append("<h1>Welcome</h1>");
 } 
});

这是我在 <body> 中的 index.html 脚本标签

<script type="text/javascript"> 
$(document).ready(function (){            
    App.init();

});
</script>

当我运行它时,我得到 TypeError: 'undefined' is not a function (evaluating 'parent.apply(this, arguments)')

我无法理解这一点。帮助!

最佳答案

改变这个:

window.PackageViewer = new Backbone.Router.extend({
 routes : {
   '':'home'
}

为此:

window.PackageViewer = Backbone.Router.extend({
 routes : {
   '':'home'
}

因为在这里你应该只是扩展 Backbone.Router,而不是创建一个新实例。

当您调用 `this.router = new PackageViewer(); 时,您在 App.init 中正确地创建了一个新实例;

我用虚拟包模型和集合对此进行了测试,它有效。

window.Package = Backbone.Model.extend({
});

window.Packages = Backbone.Collection.extend({
    model: Package  
});

关于javascript - 我如何处理主干路由器的这个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016555/

相关文章:

javascript - Google MAP 区域坐标和多边形

javascript - 具有多个元素的主干更改类

Javascript:仅用另一个对象中的字段覆盖一个对象中的现有字段

jquery - 我可以根据要求加载外部样式表吗?

jquery - 如何从不同的应用程序远程调用Grails Web服务

ruby-on-rails - 如何在url中发送带小数点的参数?

javascript - Marionette LayoutView 删除了模板中的根 HTML 元素

javascript - JavaScript 中具有 parseInt 值 = NaN 的数字

jquery - 自动完成功能 : How to load text which is related to starting letter

jquery - 取消绑定(bind)滚动事件 - 推荐吗?