Angular UI-Router-在状态更改时刷新延迟加载的嵌套ui-view

温斯顿

我是使用ui-router的新手,并且在延迟加载嵌套ui-view时遇到了一些困难。我已经尝试了很多方法,尽管我想我已经接近了,但是我还无法完全正常工作,因此,修复下面共享的插件的任何人都将获得正确的答案。

柱塞

-首先,require.js引导主应用程序,而index.html包含两个ui视图,一个用于导航,一个用于主要内容部分。主要内容部分包含各种项目组合项(plnkr中的Test1),这些项目项在被选中时被延迟加载(使用ocLazyLoad)到主要内容部分。

-主应用程序模块在其config方法中定义了各种状态,包括根据其ID并基于命名约定加载投资组合项目的状态。

-单击Test1时,将延迟加载其主模块,并且该模块定义其自己的状态,并且Test1具有其自己的index.html和其自己的嵌套ui-view。值得注意的是,我还必须使用该模块的run方法来运行将$ state.go包装在$ timeout中的函数,以使模板内容在最初单击Test1时出现在嵌套的ui视图中。正如我们稍后将看到的那样,这是骇人听闻的,并且无疑不是正确的方法,也可能是问题的根源。我还尝试将$ state.go放到服务中,但没有任何变化,因为我最终遇到了同样的问题。

-最后,这是发生问题的地方。如果从Test1内部单击主导航中的Home,然后再次尝试单击Test1,则以前出现在嵌套ui视图中的模板内容不会出现(显然,因为模块的run函数仅运行一次)。手动单击重新加载状态的链接很容易使其重新出现,但是显然这是不希望的。

TL / DR-主页->单击Test1->工作!->单击主页->单击Test1->中断!

主要应用模块和状态:

(function() {

  angular.module('myApp', [
  'ui.router',
  //'door3.css',
  'oc.lazyLoad'
])
.config(function($ocLazyLoadProvider, $stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise('/');

  $stateProvider
    .state('root', {
      url: '/',
      views: {
        'nav': {
          templateUrl: 'views/static/nav.html'
        },
        'content': {
          templateUrl: 'views/portfolio.html'
        }
      }
    })
    .state('root.home', {
      url: 'home',
      views: {
        'content@': {
          templateUrl: 'views/portfolio.html'
        }
      }
    })
    .state('root.about', {
      url: 'about',
      views: {
        'content@': {
          templateUrl: 'views/about.html'
        }
      }
    })
    .state('root.portfolio', {
      url: ':id',
      views: {
        'content@': {
          // css: function($stateParams) {
          //   return '/portfolio/' + $stateParams.id + '/css/master.css';
          // },
          templateUrl: function($stateParams) {
            return 'portfolio/' + $stateParams.id + '/index.html';
          },
          resolve: {
            load: function($stateParams, $ocLazyLoad) {
              return $ocLazyLoad.load({
                files: ['portfolio/' + $stateParams.id + '/js/mainModule.js']
              });
            }
          }
        }
      }
    });

});

})();

延迟加载的Test1主模块和状态:

(function() {

  angular.module('testingApp', [{
  files: [
    'portfolio/testing/controllers/testingCtrl.js'
  ]
}])
.config(function($stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise('/');

  $stateProvider
    .state('root.portfolio.testing', {
      url: '/',
      views: {
        '[email protected]': {
          templateUrl: 'portfolio/testing/views/testfile.html',
          controller: 'testingCtrl',
          controllerAs: 'test'
        }
      }
    })
})
.run(function($state, $timeout) {
  $timeout(function() {
    $state.go('root.portfolio.testing');
  }, 0);
});

})();
Mieszko4

我不知道你要实现的目标,但把$state.gorun块是一个原因,它的工作在第一时间和任何其他连续的时间。

原因是run模块加载时模块仅运行一次,模块加载一次。

在添加为依赖项注入修复此move$state.go调用testingCtrl$state

见我固定的矮人

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angular ui-router:如何在路径参数更改时重新加载状态,但在查询参数更改时如何不重新加载状态?

来自分类Dev

ui-router的嵌套ui-view中的默认状态

来自分类Dev

Angular UI Router,菜单在$ state更改时失去功能

来自分类Dev

使用直接网址或刷新时,不会加载angular-ui-router嵌套视图的页面

来自分类Dev

使用直接URL或刷新时,不会加载angular-ui-router嵌套视图的页面

来自分类Dev

页面加载时未加载angular-ui-router状态

来自分类Dev

Angular UI-Router嵌套状态模板未呈现

来自分类Dev

如何立即更新 angular ui.router 嵌套状态?

来自分类Dev

Angular UI Router单独的文件

来自分类Dev

angular-ui-router错了

来自分类Dev

Angular UI Router重置$ scope

来自分类Dev

Angular JS-UI-Router:单击时重新加载状态

来自分类Dev

Angular JS-UI-Router:单击时重新加载状态

来自分类Dev

angular-ui-router:解析根状态

来自分类Dev

Angular ui.router执行多个状态

来自分类Dev

Angular UI Router:状态转换父子

来自分类Dev

Angular UI-Router默认状态问题

来自分类Dev

Angular UI-Router默认状态问题

来自分类Dev

Angular UI Router:如何保存父状态?

来自分类Dev

Angular UI Router:专用的UI视图

来自分类Dev

angular-ui-router嵌套视图

来自分类Dev

Angular UI Router嵌套视图问题

来自分类Dev

在Angular UI Router中嵌套路由

来自分类Dev

在Angular UI Router中嵌套路由

来自分类Dev

Angular UI-Router:嵌套视图

来自分类Dev

Angular ui router如何根据状态更改html

来自分类Dev

Angular ui.router重新加载模板

来自分类Dev

Angular UI Router:当值更改时,UI父控制器不会更新

来自分类Dev

使用angular-ui-router保留UI的动作/状态

Related 相关文章

热门标签

归档