angularjs – angular ui router state – 具有相同模板和控制器的多个状态

前端之家收集整理的这篇文章主要介绍了angularjs – angular ui router state – 具有相同模板和控制器的多个状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用angular ui路由器状态提供程序在 angularjs应用程序中定义了以下状态.并且,我想用相同的配置定义多个状态,即.使用相同的模板和控制器.
$stateProvider
        .state('parent',{
            templateUrl: 'parent.html',abstract: true,parent: 'apm'
        })
        .state('parent.list',{
            abstract: true,url: '/list',templateUrl: 'list.html',controller: 'ListCtrl'
        })

        .state('parent.list.closed',{
        url: '/q',templateUrl: 'closed.html'
        })

        .state('parent.list.details',{   // would like to have same template,controller on different state parent.details without list
            url: '/:id/:name',templateUrl: 'details.html',controller: 'DetailsCtrl',resolve: {
                .....
                .....
            }
        })
        .state('parent.list.details.data',{ // would like to have same template,controller on different state parent.details.data without list
          url: '/details',views : {
            'view1' : {
              templateUrl : 'view1.html'
            },'view2' : {
              templateUrl : 'view2.html',controller : 'View2Ctrl'
            },'view3' : {
              templateUrl : 'view3.html'
            },'view4' : {
              templateUrl : 'view4.html'
            }
          }
        })

是否有可能做类似的事情

.state(['parent.list.details','parent.details'],{   
            url: '/:id/:name',resolve: {
                .....
                .....
            }
        })

任何帮助或建议?

每个状态都需要在它自己的.state()方法中定义.您将尝试按照上面列出的方式遇到多个问题.最重要的是网址.

你可以这样做:

.state('parent.list',{   
        url: '/list',resolve: {
            .....
            .....
        }
    .state('parent.list.details',{   
        url: '/:id/:name',resolve: {
            .....
            .....
        }
    })

虽然代码在某种意义上不是浓缩或高效的,但您必须声明控制器并在每个状态上部分使用,这是必要的,因为每个状态都需要自己的.state()方法

猜你在找的Angularjs相关文章