javascript - 相同的 Controller 并解析不同的状态

标签 javascript angularjs

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

谢谢!

.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'))

关于javascript - 相同的 Controller 并解析不同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875975/

相关文章:

javascript - 即使某些客户端未将监听器设置为 ('myMessage' , socket.broadcast.emit 'myMessage' , data') 是否会向所有客户端发出消息?

javascript - vue-chartjs 中的水平滚动

javascript - 验证 'Price'( double )表单输入 PHP

css - 如何更改uib轮播的高度宽度?

javascript - Angular js Controller 不工作

javascript - 当使用 $(document).ready 时,为什么它必须在匿名函数中?

javascript - 卡住下一个和上一个事件

angularjs - 当我的网页上有一个持续时间计数器时,AngularJS 是否有任何帮助?

angularjs - 如何通过指令和 Controller 中的代码交叉来构建 Angular web 应用程序?

javascript - 我如何在 Moment.js 中准确获取天数