在用户导航到特定URL之前,控制器未初始化

时间:2015-07-17 09:30:00

标签: angularjs

.when("/main", {
        templateUrl: "main.html",
        controller: "MainController"
      })
      .when("/user/:username",{
        templateUrl: "user.html",
        controller: "UserController"
      })
      .otherwise({redirectTo:"/main"});

在User.html中我有一个打开ng对话框的按钮,它有一些来自main.html的数据,但是如果用户直接导航到/ user /:username我无法从main.html渲染数据在我的对话框中。

1 个答案:

答案 0 :(得分:0)

根据ngRoute,这些路线之间没有任何关系。当您移动到路径/user/:username时,将销毁MainController并激活UserController。

如果您想拥有父子关系,即在激活/user/:username路线时激活MainController,请使用 UI路由器

UI路由器中的代码如下所示:

function ($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('home', {
            url: '/main',
            templateUrl: 'main.html',
            controller: 'MainController'
        })
        .state('home.user', {
            url: 'user/:username',
            templateUrl: 'user.html',
            controller: 'UserController'
        });
};