取决于服务器的动态路由响应在angularjs
问题描述:
所以我试图配置我的应用程序的方式,让它动态路由取决于服务器的响应。我的代码如下。取决于服务器的动态路由响应在angularjs
HTML
<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>
控制器
$scope.submit=function(){
subCategoryService.getsubCategories().then(function (response)
{
console.log(response)
$rootScope.subcategories=response.data.data.subcategories;
$scope.category=response.data.data.category_name;
})
$location.path('/subcategory');
}
服务
.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);
}}}])
另一个控制器,让与c在应用程序进入类别页面之前服务器响应中的名称。
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/CATEGORY_NAME
一样。当我浏览用户类型服务时,我得到了一系列类别,并且我希望使用其中一个类别名称在子类别服务中传递,就像我之前写的那样。应用程序的流程与用户 - >类别 - >根据类别一样,显示子类别。任何帮助,将不胜感激。谢谢 !!
答
使用这样
路线
.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);
}}}])
难道这应该是一个单页的应用程序?如果是,那么'$ location.path()'会导致你的页面重新加载。另外,我不明白是什么问题?你的代码是否工作,如果是,那么你是否得到任何错误? –
你想要什么结束地址?例如。猫=水果,蔬菜,fruit_subcats =香蕉,苹果,vegetables_subcats =番茄,土豆... 1.结束subcat网址/水果/香蕉,/蔬菜/番茄。 1.选项/香蕉,/番茄......即你想从url的根目录开始subcat或作为第二个参数? –
我想从url的根目录开始subcat,而不是第二个参数。 @AyushBahuguna我能做些什么来不让它每次都重新加载? – BleachedAxe