【问题标题】:AngularJS routing for dynamic urls, how?AngularJS路由动态url,怎么样?
【发布时间】:2013-07-11 13:56:49
【问题描述】:

我正在尝试了解如何在以下情况下配置我的 angularJS 路由:

我们有一个搜索页面,我们根据提供的标签(1..n 个标签)显示搜索结果。我们希望用户能够解析输入以下网址,并且我们的系统可以进行搜索并显示相应的结果。

网址格式应为:

http://mywebsite.com/search/<term1>/<term2>/<termN>...所以它可能是不同数量的术语。

我正在研究路由提供,但无法找到动态执行此操作的方法。

我看到我可以放入 routeprovid:

.when('/search/:searchParams',...但是只有当我有一个术语时才处理...是否可以将其配置为尽可能多地使用给定的术语?

【问题讨论】:

    标签: angularjs routing angularjs-routing


    【解决方案1】:

    这对你有帮助吗?似乎支持动态路由,您可能可以拆分 :name 参数来做您想做的事情。

    http://gregorypratt.github.io/AngularDynamicRouting/

    【讨论】:

      【解决方案2】:

      你可以试试base64ing你的searchParams:

      .when('/search/:searchParams', {controller:'SearchCtrl'})
      
      function SearchCtrl($routeParams, $location){
          //Assuming your params are an array like ['param1', 'param2', 'param3']
          //You could easily adapt this to base64 a JSON object
          function encodeParams(params){
              return window.btoa(params.join(';'));
          }
      
          function decodeParams(string){
              return window.atob(string).split(';');
          }
      
          var searchParams = decodeParams($routeParams.searchParams);
      
          scope.search = function(params){
              $location.path('/search/' + encodeParams(params));
          }
      }
      

      【讨论】:

        【解决方案3】:

        我的解决方案可能看起来不太高兴,但至少可以:

        你可以安排你的路线

        yoursite.com/term1Name/**:param1**/term2Name/**:param2**/term3Name/**:param3**
        

        为了清楚起见,您可能会将您的路线看起来像 REST 路线。例如我想去一个服务列表:

        www.yoursite.com/servises/
        

        转到其中一项服务:

        www.yoursite.com/servise/:id
        

        如果我想查看一些服务细节,我会这样做:

        www.yoursite.com/servise/:id/details
        

        等等

        www.yoursite.com/servise/:id/detail/:id
        

        【讨论】:

          猜你喜欢
          • 2016-08-31
          • 1970-01-01
          • 2017-11-25
          • 2012-11-20
          • 1970-01-01
          • 2015-04-09
          • 1970-01-01
          • 2012-01-27
          • 2015-01-06
          相关资源
          最近更新 更多