Circular Dependency in BackboneJS

更新日期: 2015-12-12 阅读次数: 8294 分类: BackboneJS

Uncaught Error: Module name "router" has not been loaded yet for context: _

今天写一个简单新建页面时,遇到上面这个错误。报错来自于 views/new_item.js 的

var Router = require('router');

确认了一下路径是对的,router.js 也加载成功了,依然报错。对比 router.js 的代码

define(function(require) {
    var Backbone = require('backbone');
    var NewItem= require('views/new_item');

    var AdminRouter = Backbone.Router.extend({
	...
        newItem: function() {
            var newItem= new NewItem();
            newItem.render();
        },
	...
    });

会发现,new_item.js 与 router.js 形成了 Circular Dependency ( ̄▽ ̄)"

为何要在 View 中使用 Router 呢

以新建为例,在创建完新条目之后,我想自动返回首页,即

router.navigate('/', {trigger: true});

这便是 Circular Dependency 的罪魁祸首

如何避免 router 造成的 Circular Dependency 呢

Backbone.history.navigate('/', true);

参考

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式