Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 同一控制器和不同状态的解析_Javascript_Angularjs - Fatal编程技术网

Javascript 同一控制器和不同状态的解析

Javascript 同一控制器和不同状态的解析,javascript,angularjs,Javascript,Angularjs,我有以下配置。有没有办法让它更干净,没有重复的代码 谢谢大家! .state('info', { url: '/info/:id', templateUrl : 'templates/pages/info.html', controller : 'singlePage', resolve: { pageData: function(getData, $stateParams) { var params = $statePara

我有以下配置。有没有办法让它更干净,没有重复的代码

谢谢大家!

.state('info', {
    url: '/info/:id',
    templateUrl : 'templates/pages/info.html',
    controller : 'singlePage',
    resolve: {
       pageData: function(getData, $stateParams) {
            var params = $stateParams;
            params.type = this.self.name;
            return getData.getPageData(params.type, params)
       }
    }
})
.state('news', {
    url: '/news/:id',
    templateUrl : 'templates/pages/news.html',
    controller : 'singlePage',
    resolve: {
       pageData: function(getData, $stateParams) {
            var params = $stateParams;
            params.type = this.self.name;
            return getData.getPageData(params.type, params)
       }
    }
})
.state('event', {
    url: '/event/:id',
    templateUrl : 'templates/pages/event.html',
    controller : 'singlePage',
    resolve: {
       pageData: function(getData, $stateParams) {
            var params = $stateParams;
            params.type = this.self.name;
            return getData.getPageData(params.type, params)
       }
    }
})
function createState(name) {
    return {
        url: '/' + name + '/:id',
        templateUrl : 'templates/pages/' + name +'.html',
        controller : 'singlePage',
        resolve: {
           pageData: function(getData, $stateParams) {
                var params = $stateParams;
                params.type = this.self.name;
                return getData.getPageData(params.type, params)
           }
        }
    }
}

....

.state('info', createState('info'))
.state('news', createState('news'))
.state('event', createState('event'))