如何用params做$ state.go()?

时间:2016-06-17 11:00:53

标签: javascript angularjs routing angular-ui-router angularjs-routing

我已经完全初始化了$ stateProvider,我正在使用ui-sref来处理所有这些状态。效果很好。 用户按下按钮,然后$ stateProvider进入编辑页面。

在这个页面上,我有一个$ http请求的表单:

try catch

如果一切正常,我想重定向到其他视图。但是这个:

  

$ state.go('roleInfo({roleId:$ stateParams.roleId})');

不起作用。我怎么能用params做$ state.go?

3 个答案:

答案 0 :(得分:5)

您尝试使用ui-sref指令的方式,使用$state.go方法调用它时,您应该传递第一个参数stateName&然后以Object格式传递params。

$state.go('roleInfo', {roleId: $stateParams.roleId});

答案 1 :(得分:3)

试试这个:

$state.go('myStateName', {roleId: $stateParams.roleId});

You can read the docs here

答案 2 :(得分:2)

我改变了 $state.go('roleInfo({roleId: $stateParams.roleId})');

 $state.go('roleInfo',{roleId :$stateParams.roleId});

这将起作用

this.pushData = function (data) {
            $http.post('/data/' + $stateParams.dataId + '/otherdata', JSON.stringify({
                id: otherdata.id, 
                name: otherdata.name
            }), configAuth).then(
                function success(response) {
                    var addedData = response.data;
                    $.notify({message: addedData.name + " has been added"},{type:'success'});

                   $state.go('roleInfo',{roleId :$stateParams.roleId});                    },
                function error(data) {
                    console.log(data);
                    $.notify({message: data.data.message},{type:'danger'});
                }
            );

        }