4

Я отлично инициализировал $ stateProvider, и я использую все эти состояния с помощью ui-sref. Прекрасно работает. Пользователь нажимает кнопку и толкает $ stateProvider на страницу редактирования.

На этой странице у меня есть форма, которая делает запрос $ HTTP:

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'}); 
      } 
     ); 

    } 

И я хочу сделать перенаправление на другую точку зрения, если все в порядке. Но это:

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

не работает. Как я могу сделать $ state.go с параметрами?

ответ

4

То, как вы пытаетесь, что будет работать с ui-sref директивы, при вызове его с помощью $state.go метод, вы должны пройти 1-й параметр является stateName & затем передать params в формате Object.

1

я изменил $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'}); 
       } 
      ); 

     }