2016-11-30 3 views
1

verbunden, wenn ich die stateParams in einen anderen Zustand übergebe, verketten sie sich mit dem Zustand und erhalten folgende Ergebnisse in meiner IONIC App.Stateparms werden mit dem aktuellen Status

var $currState = $ionicHistory.currentView().stateId; 
$scope.consoleLog('$currState: ' + $currState); //$currState: app.stateA_purchaseData=[object Object]_supplierData=[object Object]" 

$scope.consoleLog('$stateParams: ' + JSON.stringify($stateParams)); //$stateParams: {} 

und hier die Config ist

state('app.StateA', { 
     url: '/test-url', 
     templateUrl: 'templates/test.html', 
     controller: 'AppCtrl', 
     cache: false, 
     params: { 
      purchaseData: null, 
      supplierData: null, 
     } 
    }) 


$state.go('app.StateA', {purchaseData: $scope.purchaseData, supplierData: $scope.supplierData }); 

Antwort

1

Dies geschieht, weil sich in der Dokumentation von Ionic history gibt es ein Verfahren getCurrentStateId(), die die statename mit params verkettet.

Check from line no 142 in ionic_history.js in github documentation

function getCurrentStateId() { 
    var id; 
    if ($state && $state.current && $state.current.name) { 
     id = $state.current.name; 
     if ($state.params) { 
     for (var key in $state.params) { 
      if ($state.params.hasOwnProperty(key) && $state.params[key]) { 
      id += "_" + key + "=" + $state.params[key]; 
      } 
     } 
     } 
     return id; 
    } 
    // if something goes wrong make sure its got a unique stateId 
    return ionic.Utils.nextUid(); 
    } 

die Parameter Um stattdessen zu bekommen, Versuch,

StateParams() die Rückkehr für y params Objekt Dies ist eigentlich getCurrentStateParams()

function getCurrentStateParams() { 
    var rtn; 
    if ($state && $state.params) { 
     for (var key in $state.params) { 
     if ($state.params.hasOwnProperty(key)) { 
      rtn = rtn || {}; 
      rtn[key] = $state.params[key]; 
     } 
     } 
    } 
    return rtn; 
    } 

ruft ou.

Reference(source) of the above functions

+0

@Sarvan Ich erhalte diesen Fehler "" Typeerror: Objekt # hat keine Methode 'StateParams'“ –

Verwandte Themen