gpt4 book ai didi

javascript - AngularJS 路由中的动态部分参数

转载 作者:IT王子 更新时间:2023-10-29 00:05:44 27 4
gpt4 key购买 nike

我正在使用 angularjs 网站,并且有使用 Rails 中的路由和 php 中的 Laravel 的背景。使用 Laravel 中的路由,我们可以动态创建一组类似于以下的路由:

  foreach($cities as $city):
Route::get($city.'/hotels');
Route::get($city.'/{slug}');

endforeach;

这里我们在 Laravel 中定义了一系列独立的路由,除了 cityslug 的值外,它们在技术上看起来是一样的。

在这种情况下,我发现 angularJS 在定义路由方面有点受限。坦率地说,我在这里有点迷路。

更新

我在这里做了一些修改 - 基本上我设置了一个服务来从我的数据库中检索 Assets ,例如在本例中是城市和类别列表。我正在尝试这样做:

如果 {slug} 在从我的 API 检索到的类别数组中,则使用我的 ListController 和 ListView ,但如果不是,则使用我的 SingleVenueController 和单一 View 。这是我目前的代码,但它不起作用:(

  appRouteProvider.when('/:city/:slug', {
templateUrl : function(sharedParams, $routeParams){
t = sharedParams.getCurrentPageType($routeParams);
if(t=='list'){
return '../../app/templates/list.html';
}
if(t=='single'){
return '../../app/templates/single.html';
}

},
controller : function(sharedParams, $routeParams){
t = sharedParams.getCurrentPageType($routeParams);
if(t=='list'){
return 'ListsController';
}
if(t=='single'){
return 'SingleController';
}
},


resolve:{
sharedParamsData:function(sharedParams){
return sharedParams.promise;
},
}
})

在上面的 sharedParams 中是一个服务,getCurrentPageType 只是检查 url slug 来决定发送回哪个 Controller - 但它根本不起作用 :(

最佳答案

如何使用参数定义单个路由?在 angularjs v1.x 中,您可以使用任意多的参数 xor 查询定义任意多的路由

.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/city/:slug', {
templateUrl: 'book.html',
controller: 'BookController',
resolve: {
// you can also retrieve some data as a resolved promise inside your route for better performance.
}
})

引用:https://docs.angularjs.org/api/ngRoute/service/ $路线

关于javascript - AngularJS 路由中的动态部分参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39727540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com