【问题标题】:UI Router $state.go throwing $stateChangeErrorUI 路由器 $state.go 抛出 $stateChangeError
【发布时间】:2017-07-04 16:24:06
【问题描述】:

当我尝试运行 $state.go(); 时,我遇到了 UI-Router v0.4.2 引发以下错误的问题(我认为)

14:57:22.563 错误:[$http:badreq] Http 请求配置 url 必须是字符串。收到:["$stateParams",null] http://errors.angularjs.org/1.5.8/$http/badreq?p0=%5B%22%24stateParams%22%2Cnull%5D 堆栈跟踪: minErr/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:68:12 $http@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:11439:15 createShortMethods/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:11698:18 handleRequestFn@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:19419:14 TemplateFactory/this.fromUrl@http://localhost:3001/vendor.js:1488:16 TemplateFactory/this.fromConfig@http://localhost:3001/vendor.js:1444:39 加载@http://localhost:3001/vendor.js:4586:20 resolveViews/http://localhost:3001/vendor.js:4479:20 调用@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:4718:16 继续@http://localhost:3001/vendor.js:1266:32 调用@http://localhost:3001/vendor.js:1262:26 $解决/this.study/http://localhost:3001/vendor.js:1241:14 $Resolve/this.resolve@http://localhost:3001/vendor.js:1345:12 resolveViews/http://localhost:3001/vendor.js:4482:30 forEach@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:335:11 resolveViews@http://localhost:3001/vendor.js:4476:9 进程队列@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:16383:28 scheduleProcessQueue/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:16399:27 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17682:16 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17495:15 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17790:13 ngEventHandler/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:25890:17 defaultHandlerWrapper@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:3497:3 createEventHandler/eventHandler@http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:3485:9 1 脚本.js:1301:13 http://localhost:3001/app/script.js:1301:13 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:18005:15 过渡到/$state.transitionhttp://localhost:3001/vendor.js:4245:15进程队列 http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:16383:28 调度进程队列/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:16399:27 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17682:16 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17495:15 $RootScopeProvider/this.$gethttp://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:17790:13 ngEventHandler/http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:25890:17 defaultHandlerWrapper http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:3497:3 创建事件处理程序/事件处理程序 http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js:3485:9

路线,如下所示:

.state('foo.bar', {
    url: '/:type/:id',
    views: {
        'question': {
            templateUrl: ['$stateParams', function (stateParams) {
                var qID = stateParams.id;
                var template = qID + '.tmpl.html';
                var url = "app/section/foo/";

                return qID <= 7 ? url + 'general/' + template : url + stateParams.type + "/" + template;
            }]
        }
    }
})

我正在使用它来尝试进入状态:

$state.go('foo.bar', {
    type: 'typeA',
    id: 1
});

【问题讨论】:

    标签: angularjs angular-ui-router


    【解决方案1】:

    [插入掌心]

    templateUrl 上的方括号:导致问题

    templateUrl: function (stateParams) {
        var qID = stateParams.id;
        var template = qID + '.tmpl.html';
        var url = "app/section/foo/";
    
        return qID <= 7 ? url + 'general/' + template : url + stateParams.type + "/" + template;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多