相关疑难解决方法(0)

AngularJS - 如何在生成templateUrl时使用$ routeParams?

我们的应用程序有2级导航.我们想使用AngularJS $routeProvider动态地为模板提供模板<ng-view />.我正在考虑按照以下方式做一些事情:

angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/:primaryNav/:secondaryNav', {
        templateUrl: 'resources/angular/templates/nav/'+<<primaryNavHere>>+'/'+<<secondaryNavHere>>+'.html'
    });
}]);
Run Code Online (Sandbox Code Playgroud)

我只是不知道如何填充内部的部分<<>>.我知道primaryNav和secondaryNav绑定到$ routeParams,但是如何在这里访问$ routeParams以动态提供模板?

javascript angularjs

96
推荐指数
4
解决办法
21万
查看次数

angularjs路由可以有默认参数值吗?

我可以在AngularJS中设置路由参数的默认值吗?有没有办法拥有/products/123/products/处理相同的路线?

我想重构我现有的代码,看起来像:

myModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
     when('/products/', {templateUrl: 'products.html', controller: ProductsCtrl}).            
     when('/products/:productId', {templateUrl: 'products.html', controller: ProductsCtrl})
}]);


function ProductsCtrl($scope, $routeParams) {
    $scope.productId = typeof($routeParams.productId) == "undefined" ? 123 : $routeParams.productId;
}
Run Code Online (Sandbox Code Playgroud)

它有效,但它不是很优雅.有没有更好的办法 ?

javascript model-view-controller url-routing angularjs

32
推荐指数
3
解决办法
3万
查看次数

具有可选参数的应用程序状态,没有尾部斜杠

.state('tabs.map', {
    url:'/map/{location_id}',
    params: {
      location_id: { value: -1 }
    },
    views: {
      'map-tab':{
        templateUrl:'templates/map.html',
        controller:'MapCtrl'
      }
    }
  })
Run Code Online (Sandbox Code Playgroud)

我已经在网上找到了一些可选参数的不同选项,但它们都没有像我正在寻找的那样工作.我添加的代码允许:

  • /tab/map/.*?

  • /标签/图/

但不是

  • /标签/图

我不确定为什么尾随斜线导致问题,因为从我读过它不应该是一个问题.有谁知道如何解决这个问题?

最近咨询过

壁球引入param变量

.state('tabs.map', {
    url:'/map/:location_id',
    params: {
      location_id: { value:null, squash:true }
    },
    views: {
      'map-tab':{
        templateUrl:'templates/map.html',
        controller:'MapCtrl'
      }
    }
  })
Run Code Online (Sandbox Code Playgroud)

angularjs ionic

5
推荐指数
1
解决办法
1791
查看次数

使用stateProvider angularjs的多个可选参数的Url

由于angular angularjs路由有可选的参数值吗?AngularJS:使用带有可选参数的URL进行路由带有?参数名称的 问号应该使其成为可选项.它没有帮助我.

var app = angular.module('app', ['ui.router','ngRoute']);

app.config(function ($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/a');
    $stateProvider.state('a', {
        url: '/a',
        templateUrl: 'views/a.html'
    }).state('b', {
        url: '/b/:code?/:d?',
        templateUrl : 'views/b.html'
    })
});
Run Code Online (Sandbox Code Playgroud)

这个网址http:// localhost:xx/kk /#/ b/1/2对我来说很好.但是http:// localhost:xx/kk /#/ b(没有任何参数)和http:// localhost:xx/kk /#/ b/1对我不起作用......

你可以看到我正在使用$stateProviderui-router.我不想切换到$urlRouteProvider

state angularjs angular-ui angular-ui-router

3
推荐指数
1
解决办法
3014
查看次数