Я учусь Угловое, так вот мой TestApp: http://enrolin.in/test/#/studentsAngularJS не маршрутизации правильно
Теперь здесь я хочу найти в базе данных по названию. Поэтому я создал php, который возвращает именно то, что мне нужно. Вот php: http://enrolin.in/test/login.php?p=fetchbyname&&name=ak Вы должны заменить имя в URL-адресе на все, что нужно для поиска. Я также создал частичную страницу, которая возвращает абсолютно правильные результаты, вот страница: http://enrolin.in/test/#/studentSearch/ak Все было хорошо до сих пор Но вот проблема:
Когда я пытаюсь искать в http://enrolin.in/test/#/students, angularJS не направляет меня к чему-то вроде http://enrolin.in/test/#/studentSearch/ak но вместо того, чтобы по умолчанию, который я задал в $ routeProvider
Вот мои angularJS (я удалил некоторые маловажную код):
поставщик маршрута:
.config(function ($routeProvider) {
$routeProvider
.when("/students/:id", {
templateUrl: "templates/studentDetails.html",
controller: "studentDetailsController"
})
.when("/studentSearch/:name", {
templateUrl: "templates/studentSearch.html",
controller: "studentSearchController"
})
.otherwise({
redirectTo: "/home"
})
})
Контроллер, который проходит по ссылке:
.controller("studentsController", function ($scope, $http, $route,$location) {
$scope.searchStudent=function(){
if($scope.name){
$location.url("/studentsSearch/" + $scope.name);
}
else{
$location.url("/studentsSearch/");
}
}
$scope.reloadData=function(){
$route.reload();
}
$http.get("http://enrolin.in/test/login.php?p=fetchall")
.then(function (response) {
$scope.students = response.data;
})
})
Контроллер, который извлекает данные и отображает:
.controller("studentSearchController", function ($scope, $http, $routeParams) {
if($routeParams.name)
{
$http({
url: "http://enrolin.in/test/login.php?p=fetchbyname&&name=",
method: "get",
params: { name: $routeParams.name }
}).then(function (response) {
$scope.studs = response.data;
})
}
else
{
$http.get("http://enrolin.in/test/login.php?p=fetchall")
.then(function (response) {
$scope.students = response.data;
})
}
})
Раньше каждый раз я хотел поставить ссылку в HTML маршрутизировать я использовал писать как <a href="#/courses">courses</a>
Но теперь, когда я хочу включить его в функцию, я не уверен, что писать. Пожалуйста помоги.
Все еще Не работает –
Вы проверили наличие ошибок javascript с помощью инструментов разработчика? В любом случае, вы можете просто сказать мне следующий шаг, когда вы пытаетесь это сделать? На какой странице вы пытаетесь это сделать? – Oshadha
Привет @АхильЭшКаджурия, нашел проблему. Ваша функция устанавливает путь как $ location.path ("/ studentsSearch /" + $ scope.name); и имя маршрутизации - это .when ("/ studentSearch /: name". Имена не совпадают. Измените имя, и оно будет работать. – Oshadha