在这个简单的要求/骨干网应用Require.js模块没有看到骨干Router.js
https://github.com/thisishardcoded/require-prob
为什么app.js看到路由器,但TestView.js不是?
这里是app.js
define(['router'],function (Router) {
第一线,这里是TestView.js
define(['backbone','router'],function(Backbone,Router){
检查出完整的详细信息,下载回购的第一线,运行和检查控制台日志如果你觉得如此倾向
谢谢! Jim
更多:好的,答案是 - 因为它的加载顺序,即使改变了,我有一个循环依赖不是吗? TestView需要路由器,路由器需要TestView。
在这种情况下,解决方案可能是
var r=require('router);
r.navigate or whatever
但是,这似乎是一个耻辱,路由器是不能直接访问无处不在,是上述方法中好的做法呢?
谢谢,是的,我从那以后意识到我有一个循环依赖 - 我想我正在考虑路由器在整个应用程序可用的单身人士,所以......这是考虑好的做法是绕过路由器,也可以使用require()内联来说话吗? – Jim 2013-05-01 09:52:25
我试图解决你在路由器中查看路由的问题。但是现在,既然您已经问过这个问题的好坏,我想我不会选择这种方式,因为它会导致组件紧密结合。相反,我会让路由器监听视图的事件并调用视图的方法。所以如果视图需要路由器做某件事情,它会触发事件。如果路由器需要使用视图,它将调用它的公共方法。 – 2013-05-01 12:13:30