angular-ui route不会加载控制器

时间:2016-12-08 15:32:24

标签: angularjs angular-ui-router

    .state('app.match.indicator.speciality',{
      url: '/speciality/:jobId?',
      views: {
        'sidebar@app.match.indicator':{
          templateUrl: ENVApp + '/views/match/match.roleProfileSideBar.html?' + cacheVersion,
        },
        'createRoles@app.match.indicator': {
          templateUrl: ENVApp + '/views/match/match.page2.html?' + cacheVersion
        }
      },
      controller: 'RoleProfileCreateSpecialtyController'
    })

这就是我所拥有的状态定义,但是我的RoleProfileCreateSpecialtyController由于某种原因没有被加载。我知道这是因为我在那里发出了一个从未发生的警报。

我做错了什么?

这也失败了:

    .state('app.match.indicator.speciality',{
      url: '/speciality/:jobId?',
      views: {
        'sidebar@app.match.indicator':{
          templateUrl: ENVApp + '/views/match/match.roleProfileSideBar.html?' + cacheVersion,
        },
        'createRoles@app.match.indicator': {
          templateUrl: ENVApp + '/views/match/match.page2.html?' + cacheVersion
        }
      },
      // controller: 'RoleProfileCreateSpecialityController'
      controller: function() {
        alert('fd')
      }
    })

1 个答案:

答案 0 :(得分:2)

在状态中定义多个视图时,您无法定义单个控制器(请参阅https://stackoverflow.com/a/33139917/3153169以供参考)。

要解决此问题,您只需为多个视图定义控制器:

.state('app.match.indicator.speciality',{
    url: '/speciality/:jobId?',
    views: {
        'sidebar@app.match.indicator':{
            templateUrl: ENVApp + '/views/match/match.roleProfileSideBar.html?' + cacheVersion,
            controller: 'RoleProfileCreateSpecialtyController'
        },
        'createRoles@app.match.indicator': {
            templateUrl: ENVApp + '/views/match/match.page2.html?' + cacheVersion,
            controller: 'RoleProfileCreateSpecialtyController'
        }
    }
})