AngularJS路由中的动态部分参数

Ali*_*Ali 14 javascript php laravel angularjs

我正在使用angularjs网站,并且在Rails中使用路由以及在php中使用Laravel.通过Laravel中的路线,我们可以动态创建一组类似于以下的路线:

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

  endforeach;                      
Run Code Online (Sandbox Code Playgroud)

在这里,我们定义一系列Laravel单独的路线在技术上做看起来是一样的,除了价值的cityslug.

在这种情况下,我发现angularJS在定义路径时有点受限.坦率地说,我有点迷失在这里.

UPDATE

我在这里做了一些修改 - 基本上我设置了一个服务,它从我的数据库中检索资产,例如在这种情况下的城市和类别列表.我正在尝试这样做:

如果{slug}在我的API中检索的类别数组中,则使用my ListController和list视图,但如果不是,则使用我的SingleVenueController单视图.这是我目前的代码,但它无法正常工作:(

  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;
      },
    }
  })
Run Code Online (Sandbox Code Playgroud)

在上面sharedParams是一个服务,getCurrentPageType只是检查url slug来决定要发回的控制器 - 但它根本不工作:(

mxn*_*son 6

如何使用参数定义单个路径?在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.
  }
})
Run Code Online (Sandbox Code Playgroud)

ref:https://docs.angularjs.org/api/ngRoute/service/ $ route