Ich versuche die routeProvider und routeParams von angular zu verwenden, um das Routing in meiner Anwendung zu steuern. Unter allen Strecken habe ich die folgenden Routen definedJson kann nicht zwischen Controllern übergeben werden. RouteParams-AngularJS
$routeProvider
.when("/home",{
templateUrl : "home.html",
controller : "HomeController"
})
.when("studentDetails/:student",{
templateUrl : "studentDetails.html",
controller : "StudentController"
})
.otherwise({redirectTo:"/home"});
});
In meiner Heimsteuerung habe ich eine Funktion, die den Schüler-Controller auf einem Click-Ereignisse als folgt-
$location.path("/studentDetails/" + studentDetails); // student details is a json.
navigieren ich Zugriff auf diese Variable in meinem StudentController als folgt-
(function(){
var StudentController = function($scope, $routeParams){
$scope.details = $routeParams.student;
};
var app = angular.module("dummy");
app.controller("StudentController",StudentController);
}());
das Problem, das ich bin vor ist, dass der Code funktioniert, wenn ich eine einfache Variable (eine Zeichenkette wie die studentDetails) passieren, aber es fa Iss für einen JSON. Ist das das erwartete Verhalten oder mache ich etwas falsch? Wenn es nicht möglich ist, einen Json mit den $ routeParams zu übergeben, wie sollte dies der ideale Weg sein?
Wenn Sie mehrere Variablen in die Route einfügen möchten, müssen Sie mehrere routeparam als "studentDetails /: studentid /: studentname" und $ location.path ("/ studentDetails /" + studentid + '/' + studentname) hinzufügen; –
Hallo, danke für die Antwort. Ich kenne einige Problemumgehungen für das Problem, wie das, das Sie vorgeschlagen haben, aber ist es möglich, ein JSON-Objekt direkt zu übergeben, anstatt einzelne Parameter zu übergeben? –