我学习角传递,所以这里是我的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(我已删除了一些不重要的代码)默认:
var app = angular
.module("Demo", ["ngRoute"])
.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("studentDetailsController", function ($scope, $http, $routeParams) {
$http({
url: "http://enrolin.in/test/login.php?p=fetchone&&id=",
method: "get",
params: { id: $routeParams.id }
}).then(function (response) {
$scope.stud = response.data;
})
})
.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>
但现在当我想把它放在函数中时,我不知道该写什么。请帮忙。
嗨FlowerChng,谢谢你的回复。但是我对角度很陌生,你能告诉我如何编写代码吗? –
Hi @ akhilesh-khajuria,原生javascript window.location.href =“您的网址”可以工作。 顺便说一句,我更喜欢使用angular-ui-router,它是配置和控制路由器的更好方法。 – FlowerCheng