Javascript angularjs中基于服务器响应的动态路由
因此,我试图以一种方式配置我的应用程序,使其能够根据服务器响应动态路由。我的代码如下 HTMLJavascript angularjs中基于服务器响应的动态路由,javascript,angularjs,Javascript,Angularjs,因此,我试图以一种方式配置我的应用程序,使其能够根据服务器响应动态路由。我的代码如下 HTML <div ng-controller="CategoriesController" class="column"> <div layout-align="center center" ng-repeat="category in categories" > <div class="category-button-text-english">
<div ng-controller="CategoriesController" class="column">
<div layout-align="center center" ng-repeat="category in categories" >
<div class="category-button-text-english">{{category}}</div>
<md-button ng-click="submit()" class="category-button" aria-label="{{category}}">
<img ng-src="assets/images/categories/{{category}}.png"
alt="{{category}}">
</md-button>
<div class="category-button-text-translation">
{{category|uppercase| translate}}
</div>
服务
.factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
var url2 = 'localhost:5000/api/subcategories/';
return {getsubCategories: function () {
return $http.get(url2);
}}}])
另一个控制器,在应用程序进入类别页面之前,根据服务器的响应提供类别名称
controller("userTypeController", function ($rootScope,$scope, $location, CategoryService) {
$scope.getCat=function(){
CategoryService.getCategories() .then(function (response)
{
$rootScope.categories=response.data.data.categories;
});
$location.path('/category');
};
所以我想要的是,在从服务器获取类别名称之后,它根据在类别页面上单击的按钮调用正确的路由。例如,根据单击的按钮,通话应该是这样的
localhost:5000/api/subcategories/categories\u NAME
。当我通过用户类型服务时,我会得到一个类别数组,我想使用其中一个类别名称在子类别服务中传递,就像我前面写的那样。应用程序的流程类似于用户->类别->根据类别显示子类别。任何帮助都将不胜感激。谢谢 像这样使用
路线
服务
.factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
var url2 = 'localhost:5000/api/subcategories/'+httpParamSerializerJQLike.category_name;
return {getsubCategories: function () {
return $http.get(url2);
}}}])
这应该是一个单页应用程序吗?如果是,则
$location.path()
将导致页面重新加载。还有,我不明白是什么问题?您的代码是否不工作,如果是,那么您是否有任何错误?您想要的最终url是什么?猫=水果,蔬菜,水果=香蕉,苹果,蔬菜=西红柿,土豆。。。1.结束子目录url/水果/香蕉/蔬菜/番茄。1.选项/香蕉,/番茄。。。也就是说,您想从url的根目录启动子目录,还是作为第二个参数?我想从url的根目录启动子目录,而不是作为第二个参数@AyushBahuguna我该怎么做才能不让它每次都重新加载?@BleatedAXE查找$routeParams
如果您使用本机angular1.x路由模块,或者$stateParams
如果您使用angular ui路由器。这是您需要更改的参数,而不是路径名。
.when("/category/:category_name", {
....
....
})
.factory('subCategoryService', ['$http', '$httpParamSerializerJQLike', '$cookies','$rootScope', function ($http, $httpParamSerializerJQLike, $cookies,$rootScope,category){
var url2 = 'localhost:5000/api/subcategories/'+httpParamSerializerJQLike.category_name;
return {getsubCategories: function () {
return $http.get(url2);
}}}])