2016-07-27 6 views
0

Auf Knopfdruck habe ich Code zum Navigieren.


$s.onClick = function (pageObj) { 
    $location.path('/Next'); 
} 

Hier param pageObj ist Objekt mit Link (ex. http://sample.), Titel und andere wichtige Werte. Jetzt möchte ich Link passieren, Titel wie params zu $ ​​location.path so habe ich versucht, mit


$location.path('/Next/' + pageObj.link + '/' + pageObj.title) 

Hier Link, Titel params ich in der nächsten Seite verwenden möchten. pageObj.link ist wiederum http, sodass die gesamte Routing-URL nicht mehr navigierbar ist. Hier

ist der Code für das Routing


angularModule.config(function ($routeProvider) { 
$routeProvider 
    .when('/', { 
     templateUrl: '/www/temp/Main.html', 
     controller: 'MainController' 
    }) 
    .when('/Next', { 

     templateUrl: '/www/temp/Select.html', 
     controller: 'SelectController' 

    }) 
}); 

wie für params zu überprüfen und auf Nächste Seite mit den params navigieren. Ich möchte nicht, dass diese Parameter in der URL angezeigt werden.

Antwort

0

Da Sie nicht die Parameter in der URL angezeigt werden soll, die absolute einfachste Weg ist es, die $rootScope wie folgt zu verwenden:

Erste Seite

$rootScope.routeParams.link = "/my/link/here"; 
$rootScope.routerParams.title = "My page title here"; 

Zweite Seite

$scope.link = $rootScope.routerParams.link; 
$scope.title = $rootScope.routerParams.title; 

Hinweis

Sie müssen die $rootScope.routeParams Objekt in Ihrem app.config, ähnlich wie diese definieren:

app.config(function($rootScope) { 
    $rootScope.routeParams = { 
     link: null, 
     title: null 
    } 
}); 

Sie werden auch $rootScope in jedem Controller injizieren müssen, wo Sie es, ähnlich wie diese Referenz:

app.controller('FirstPage_Ctrl', function($scope, $rootScope) { 
    $rootScope.routeParams.link = "/my/link/here"; 
    $rootScope.routerParams.title = "My page title here"; 
}); 
+0

Ich möchte nicht $ rootScope verwenden. Meine Anforderung ist, param durch $ location zu senden – vbharath

Verwandte Themen