Я пытаюсь использовать угловые $ routeProvider и $ routeParams для управления маршрутизацией в моем приложении. Среди всех маршрутов у меня есть следующие маршрутыНевозможно передать Json между контроллерами, используя routeParams- AngularJS
установленного размера$routeProvider
.when("/home",{
templateUrl : "home.html",
controller : "HomeController"
})
.when("studentDetails/:student",{
templateUrl : "studentDetails.html",
controller : "StudentController"
})
.otherwise({redirectTo:"/home"});
});
Внутри моего дом контроллера У меня есть функция, которая будет перемещаться к контроллеру студента на событии щелчка следующего образом-
$location.path("/studentDetails/" + studentDetails); // student details is a json.
Я обращающийся эта переменная в моей StudentController следующим образом-
(function(){
var StudentController = function($scope, $routeParams){
$scope.details = $routeParams.student;
};
var app = angular.module("dummy");
app.controller("StudentController",StudentController);
}());
проблема я столкнулся в том, что код работает, если я прохожу простую переменную (строка как studentDetails), но фа ils для json. Является ли это ожидаемым поведением или я делаю что-то неправильно? Если невозможно передать json, используя $ routeParams, какой должен быть идеальный способ сделать это?
Если вы хотите, чтобы несколько переменных передавались в маршрут, вам нужно добавить несколько маршрутов в качестве «studentDetails /: studentid /: studentname» и $ location.path («/ studentDetails /» + studentid + '/' + имя студента); –
Привет, спасибо за ответ. Я знаю пару обходных решений проблемы, как тот, который вы предложили, но возможно ли передать объект JSON напрямую вместо передачи отдельных параметров? –