Angular 1 - UI-Router - 动态声明?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (48)

我有一个很长的州名单:

  export default ($stateProvider) => {
      'ngInject'
      $stateProvider
        .state({
          name: 'agent.contact',
          url: '/contact',
          abstract: true,
          component: 'agentContact'
        })
        .state({
          name: 'agent.contact.list',
          url: '/list',
          component: 'agentContactListPage',
          data: {
            title: 'agent.commonLabel.myContacts'
          },
          resolve: {
            preferences: (ContactService) => ContactService.getContactPreferences()
          }
        })
       .state({
         name: 'agent.contact.list.overlay',
         abstract: true,
         data: {
           skipFooter: true,
           cancelState: 'agent.contact.list'
         },
         views: {
           'overlay@agent.': {
             component: 'overlayContent'
           }
          }
        })
        .state({
          name: 'agent.contact.create',
          url: '/create',
          abstract: true,
          data: {
            skipSubmenu: true,
          },
          resolve: {
            contact: ($stateParams, ContactService) => ContactService.getNewContact($stateParams.type)
          }
        })
    }

我正在寻找一个解决方案来动态化各州的声明,同时考虑到所有州都与agent.contact相关联。

我可以利用哪些解决方案?

提问于
用户回答回答于

这是抽象状态的要点。

  $stateProvider
    .state({
      name: 'agent.contact',
      url: '/contact',
      abstract: true,
      component: 'agentContact',
      resolve: {
        preferences: (ContactService) => ContactService.getContactPreferences()
      },
      children: [{
         name: 'list',
         url: '/list',
         component: 'agentContactListPage',
         data: {
            title: 'agent.commonLabel.myContacts'
         }
      }]
    })

扫码关注云+社区

领取腾讯云代金券