当我调用state.go()时stateParams不可用

时间:2015-01-13 21:14:22

标签: angularjs

所以我在使用stateParams时遇到了麻烦 - 我以前做过这个并且从来没有遇到过问题,但是当我打电话时,我似乎无法将任何东西传递给状态。

如果查看人口统计信息部分,您可以看到我正在为模板URL返回一个函数,当我对GUID进行硬编码时,它的工作正常,但我的personId变量始终未定义。我试图弄清楚我做了什么导致这种情况但是我不能为我的生活做好准备。

memberApp.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
    $stateProvider.state('quickScreen', {
        url: "#/Components/QuickScreen",
        templateUrl: "/Components/QuickScreen/index.html",
        controller: "quickScreenController",
    });

    $stateProvider.state('quickScreen.detail', {
        url: '#/quickScreen/:step',
        templateUrl: function ($stateParams) {
            console.log($stateParams.step);
            return "/Components/QuickScreen/" + $stateParams.step + "/" + $stateParams.step + ".html";
        }
    });

    $stateProvider.state('demographics', {
        views: {
            "memberDemographics": {  
                templateUrl: function ($stateParams) {
                    console.log("PersonId: " + $stateParams.personId);
                    //return '/Demographics/Index/' + $stateParams.personId;
                    return '/Demographics/Index/' + 'f75fb494-xxxx-xxxx-xxxx-a17b01336ca5';
                },
                controller: 'demographicsSearchController'
            }
        },

    });
});

memberApp.controller('memberAppController', function ($scope, $state, $stateParams) {

    console.log("About to load to demographics");
    $state.go('demographics', { personId: 'f75fb494-fe7a-4564-be93-a17b01336ca5' });
});

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此功能,我们可以从stateParams获取特定ID并分配给您可以使用该变量的某个变量,或者您可以直接使用该变量 ($ state.go('demographics',{personId:$ stateParams.personId});)。

memberApp.controller('memberAppController','$stateParams','$scope','$scope',
 function ($scope,$state, $stateParams)
 {
     console.log("About to load to demographics");
     var Id = $stateParams.personId;   
     $state.go('demographics', { personId: Id });        
});