在AngularJS中,我有两个冗长的控制器,它们是相同的 - 除了顶部的一个变量定义(在整个控制器的多个位置使用它来决定要处理的内容)。
如何将这两个控制器合并为一个控制器?
是否有类似控制器工厂的东西可以接受参数(我的变量)?
在路由器中指定变量时,是否可以将变量传递给控制器?你可以通过html中的ng-controller手动调用控制器来传递一个变量吗?
这样的事情:
ControllerA
{
mode = 'A';
MakeControllerRealAndUseItInsteadOfCurrentController(mode);
}
ControllerB
{
mode = 'B';
MakeControllerRealAndUseItInsteadOfCurrentController(mode);
}
ControllerReal( mode )
{
mode = mode;
// actual controller content
}
答案 0 :(得分:3)
Angular中的Controller与它们交互的视图紧密绑定,实际上视图根据实例化的控制器声明了ng-controller
。控制器不是可以在app \ views中共享的实用程序功能。由于控制器正在执行类似的功能,因此视图可能非常相似。
您可以重用控制器代码的一些方法是
ng-include
重复使用它们。