我有一个与 angularjs 中的模块和路由相关的问题。要求是在一个模块中定义所有路由配置 - 让我们称之为ModuleRtr
。
一旦路由被触发,它应该调用一个控制器(TestCtr
例如调用)。这个控制器是在另一个模块中定义的——我们称之为它ModuleCtrl
。
如果我尝试这样做,我会遇到如下异常:
“参数
TestCtr
不是函数,未定义”
. 原因是当角度广播$routeChangeSuccess
事件时,监听器尝试访问控制器(TestCtr
)作为当前模块的一部分 - ModuleRtr
。因为它不存在,所以会引发错误。
如果我只是TestCtr
在其中创建控制器ModuleRtr
(与其中包含路由相同),那么一切正常。但我不想那样,我想让我TestCtr
在不同的模块中。我也不想在ModuleCtrl
模块中定义路由。
所以,以更直接的方式,我的问题是:一个模块(ModuleRtr
)中定义的路由是否可以调用另一个模块(ModuleCtrl
)中定义的控制器?
我忘了提...我不想以任何方式绑定这两个模块。这当然包括在模块创建期间列出依赖项。我已经尝试过动态加载TestCtr
- 它没有解决问题。
场景是:您有 2 个 angularjs 应用程序(模块)。他们对彼此一无所知......除了一件事 - 在共享/公共位置的某处,有一个遵循特定结构(如合同)的对象。第一个模块在那里写入数据。然后它从第二个模块运行一个通用功能(这实际上是我要问的问题 - 如何?)。然后第二个模块已经知道去哪里(这是一个合同)读什么和做什么。我可以做到这一点的一种方法是尝试在创建另一个模块时动态生成表示模块依赖项的字符串。我不确定这是否是一个好的解决方案......
非常感谢!