动态更改控制器

Change controller on the fly

本文关键字:控制器 动态      更新时间:2023-09-26

在我的主angular应用程序中有3个控制器和2个div。比如左右div和控制器A B C,一开始,我用控制器A设置左div,用控制器B设置右div,我想添加一个按钮来改变左div,让它使用控制器C并运行。这可能吗?我已经坚持了三天了。我认为这是一个简单的问题,因为它只是一个改变控制器并重新运行新控制器的问题。

我建议你试试AngularUI Router: https://github.com/angular-ui/ui-router

在你的例子中,你可以有两个状态,它们都有相同的模板,但不同的控制器。

的例子:

myApp.config(function($stateProvider) {
  $stateProvider
    .state('route1', {
      url: "/route1",
      views: {
        "viewA": {
           templateUrl: "templates/a.html",
           controller: "AController"
        },
        "viewB": {
           templateUrl: "templates/b.html",
           controller: "BController"
        }
      }
    })
    .state('route2', {
      url: "/route2",
                views: {
        "viewA": {
           templateUrl: "templates/a.html",
           controller: "CController"
        },
        "viewB": {
           templateUrl: "templates/b.html",
           controller: "BController"
        }
      }
    })
});