如何通过AngularJS中的templateUrl传递URL参数?

时间:2014-05-17 16:29:57

标签: javascript angularjs

试图学习AngulareJS对此感到困惑。

这是代码:

app.config(function ($routeProvider){
$routeProvider
.when('/',
{       
    templateUrl: '/sort',
    controller : 'tasksController'      
})  
.when('/expression/:expressionId/type/:typeId',
{   
    templateUrl: '/sort/'+:expressionId +'/'+ :typeId,
    controller : 'tasksController'  
})});

这显然是错误的。

任何人都可以告诉我这样做的正确方法是什么?感谢。

2 个答案:

答案 0 :(得分:13)

谢谢大家,这就是我想要的

.when('/expression/:expressionId/type/:typeId', {

templateUrl: function(params) {
    return '/sort/' + params.expressionId +'/'+ params.typeId ;
},
controller: 'tasksController'
});

答案 1 :(得分:1)

可能你正在寻找$ routeparams https://docs.angularjs.org/api/ngRoute/service/ $ routeParams。

您可以执行以下操作:

app.config(function ($routeProvider){
  $routeProvider
    .when('/',{
        templateUrl: '/sort',
        controller : 'tasksController'
    })
    .when('/expression/:expressionId/type/:typeId', {
        templateUrl: '/sort',
        controller : 'tasksController'
    })
});

app.controller('tasksController', ['$scope', '$routeparams', function($scope, $routeparams) {
    var expressionId = $routeparams.expressionId
        , typeId = $routeparams.typeId;
}]);