Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ui路由器的延迟加载状态_Javascript_Angularjs_Angular Ui Router_Lazy Loading - Fatal编程技术网

Javascript ui路由器的延迟加载状态

Javascript ui路由器的延迟加载状态,javascript,angularjs,angular-ui-router,lazy-loading,Javascript,Angularjs,Angular Ui Router,Lazy Loading,我的延迟加载库是这样的:我正试图将它与ui路由器一起使用 我在两个单独的文件中声明了路由,这两个文件在构建过程中连接在一起。以下是串联输出的内容: angular.module('asdf').config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) { $urlRouterPro

我的延迟加载库是这样的:我正试图将它与
ui路由器
一起使用

我在两个单独的文件中声明了路由,这两个文件在构建过程中连接在一起。以下是串联输出的内容:

angular.module('asdf').config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/');
    $locationProvider.hashPrefix('!');

    $stateProvider
        .state('root', {
            url: '/',
            templateUrl: 'views/static/welcome.html'
        });
}]);

angular.module('asdf').config(['$stateProvider', function($stateProvider) {
    $stateProvider
        .state('cohort-definition-editor', {
            url: '/cohort-definition-editor',
            templateUrl: 'components/cohort-definition-editor/mui/cohort-definition-editor.html',
            controller: 'CDEController',
            data: {
                pageTitle: "Cohort Definition Editor",
                subTitle: "Cohort Definition Editor",
                category: "Apps"
            },
            params: {
                _form_LinkId: undefined
            },
            resolve: {
                dep: ['$ocLazyLoad', function($ocLazyLoad) {
                    // console.log('test');
                    return $ocLazyLoad.load([
                        'components/cohort-definition-editor/mui/cohort-definition-editor.min.js',
                        'components/cohort-definition-editor/mui/cohort-definition-editor.min.css'
                    ]);
                }]
            }
        });
}]);
(第二个文件的大部分是自动生成的,因此重复是有意的。)

我的问题是:当处于延迟加载状态时,我无法刷新页面。我将在此处开始页面加载:然后单击带有加载此url的
ui sref=“队列定义编辑器”
的链接:(使用正确的状态/html片段/etc)。如果我刷新页面,我将进入“空”状态。通常,默认情况下会显示
views/static/welcome.html
,但我在应该显示
队列定义编辑器的地方什么都没有,URL仍然是正确的

我已经在ui路由器事件中添加了一些观察者,但没有一个会在pageload上触发。我还尝试添加了一个console.log语句(见上文,在resolve部分中进行了注释),但该语句也没有触发,这使我相信pageload上的DI有问题。但它没有出错,所以很难追踪


有没有更好的方法延迟加载ui路由器状态,或者我只是做错了?作为参考,我首先了解了ocLazyLoad,它做了一件类似的事情,而且肯定会起作用。

幸运的是,如果您刷新页面,但您的状态有一个未设置为默认值的必需参数(即,我将参数设置为
未定义的
)那么就无法加载路由,因为它需要一个参数。因此,这里最好的做法是使param具有默认值