Angular UI路由器没有加载子templateUrl

时间:2017-02-21 14:25:49

标签: javascript angularjs

我有以下代码,但我仍然试图掌握Angular UI路由器。我有一个父状态,以便我可以使用resolve调用一个函数并将其应用于它的所有子节点。我的问题是,此代码create-prealert.html未显示,EnterDataController未触发。

正在发生的是两个警报都在发生,然后再没有了。

删除父状态或删除parent : app,后,我可以确认一切正常。

在我失踪的情况下,是否存在一些根本性的东西?

我觉得不需要其他代码,因为在没有尝试父母状态的任何事情时,每件事情都是完美的。

编辑:我也可以确认它与任何一个州的resolve无关。我试过没有它们仍然是同样的问题。

 $stateProvider
            .state('app', {
                controller: 'MainController as data',
                resolve: {
                    checkAuth: ['Auth','$timeout',function(Auth, $timeout){
                        return $timeout(function(){
                                alert('This is the alert for the parent state');
                            }
                            , 500 
                        );
                    }]
                }
            })
            .state('prealert', {
                parent : 'app',
                url: '/create-prealert',
                templateUrl: 'views/create-prealert.html',
                controller: 'EnterDataController as data',
                resolve: {
                    checkAuth: ['Auth','$timeout',function(Auth, $timeout){
                        return $timeout(function(){
                                alert('This is the alert for the child state');
                            }
                            , 500 ...loading...
                        );
                    }]
                }

            })
            .state('received', {
                url: '/received',
                templateUrl: 'views/received.html',
                controller: 'EnterDataController as data'
            });
    });

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,至少到了解我发生了什么事情的程度。

我尝试使用其他模板来查看会发生什么,并且一旦有模板加载就意识到一切都很好。

然后我创建了一个包含<div ui-view></div>的parent.html文件,并且它有效。我不禁想到我接近这一切都错了。但它无论如何都为我工作。

       .state('app', {
            templateUrl: 'views/parent.html',
            controller: 'MainController as data',
            resolve: {
                checkAuth: ['Auth','$timeout',function(Auth, $timeout){
                    return $timeout(function(){
                            alert('This is the alert for the parent state');
                        }
                        , 500 
                    );
                }]
            }
        })