2016-09-16 4 views
0

Ich habe diesen Zustand definiert:Zugriff auf benutzerdefinierte Eigenschaften von Statusansichten?

.state('app.feedback', { 
     url: '/feedback', 
     views: { 
      'appContent': { 
       templateUrl: 'templates/feedback.html', 
       controller: 'feedbackCtrl', 
       customParameter: 'This is my Name' 
      } 
     } 
    }) 

ich, dass customParameter auf appContent zu zeigen, ich versuche.

Dies ist mein Controller:

.controller('feedbackCtrl', 
    ['$scope', '$log', '$state', 
function($scope, $log, $state) { 

    $scope.customParameter = $state.current.customParameter; 

}]); 

und das ist meine Ansicht:

<ion-view view-title="{{customParameter}}"> 
    <ion-content> 
     <h1>{{customParameter}}</h1> 
    </ion-content> 
</ion-view> 

Nichts auf der Ansicht gezeigt wird, wenn ich einen benutzerdefinierten Parameter ohne Objekt auf den Zustand Erklärung verwenden es funktioniert, aber ich muss in diesem Projekt mehrere Ansichten haben. Wie kann ich auf diesen benutzerdefinierten Parameter zugreifen?

Ps: Ich arbeite mit Ionic 1.3.1

Antwort

0

Der Rute, den ich benutzte, um den Param zu holen, war falsch. Ich musste mehr in das Objekt $state graben, um den richtigen Weg zu finden.

alle Parameter innerhalb $state.current

A eine plunker mit einem Beispiel gemacht (auf der Basis der ionischen Starters Seitenmenü)

den Zustand:

.state('app.playlists', { 
     url: "/playlists", 
     views: { 
     'menuContent' :{ 
      templateUrl: "playlists.html", 
      controller: 'PlaylistsCtrl', 
      menuContentParam:'menuContentParam' 
     }, 
     viewsParam:'viewsParam' 
     }, 
     stateParam:'stateParam' 
    }); 

Der Regler

.controller('PlaylistsCtrl', function($scope, $state) { 
$scope.stateParam = $state.current.stateParam; 
    $scope.viewsParam = $state.current.views.viewsParam; 
    $scope.menuContentParam = $state.current.views.menuContent.menuContentParam; 
}) 

Und die Aussicht:

<ion-view title="Playlists"> 
    <ion-nav-buttons side="left"> 
    <button menu-toggle="left" class="button button-icon icon ion-navicon"></button> 
    </ion-nav-buttons> 
    <ion-content class="has-header"> 
    <ion-list> 
     <ion-item>{{stateParam}}</ion-item> 
     <ion-item>{{viewsParam}}</ion-item> 
     <ion-item>{{menuContentParam}}</ion-item> 
    </ion-list> 
    </ion-content> 
</ion-view> 
2

Verwenden Zustand params die benutzerdefinierten Daten in dem Zustand $ stateParams

.state('app.feedback', { 
    url: '/feedback', 
    views: { 
     'appContent': { 
      templateUrl: 'templates/feedback.html', 
      controller: 'feedbackCtrl' 
     } 
    }, 
    params:{ 
    customParameter: 'This is my Name' 
    } 
}) 

In-Controller verwenden, um vorbei an der customParameter

.controller('feedbackCtrl', 
    ['$scope', '$log', '$state', $stateParams 
function($scope, $log, $state, $stateParams) { 

    $scope.customParameter = $stateParams.customParameter; 

}]); 
erhalten

Und die Aussicht ist

<ion-view view-title="{{customParameter}}"> 
    <ion-content> 
     <h1>{{customParameter}}</h1> 
    </ion-content> 
</ion-view> 
+0

Eigentlich, wenn ich das $ stateParams-Objekt sehe, ist es leer, ich denke, es funktioniert nur mit URL gemacht Params. – distante

Verwandte Themen