当url有参数时,$ routeProvider不加载模板

时间:2013-07-11 05:08:45

标签: angularjs

我已成功使用angular $routeProvider来使用与此类似的代码加载模板

$routeProvider.when('/store', {
    templateUrl: 'views/store.html',
    controller: 'StoreController'
});

但是,当我使用下面的代码时,没有任何反应。也就是说,我的模板没有加载。我认为这一定是因为我在网址中有一个参数,但我不确定。

$routeProvider.when('/item/:item_id/info', {
    templateUrl: 'views/item.html',
    controller: 'ItemsCtrl'
});

我怎样才能让它发挥作用?

更新: 为清楚起见,我的链接如下所示:ng-click="setRoute('/item/1/info')"其中“1”是参数。

UPDATE2:

$scope.setRoute = function(route){ $location.path(route); }; 

UPDATE3:

通过:item_id加载参数$http。当我检查页面的源代码时,我看到参数(例如,“123”),但由于某种原因它没有绑定到我的setRoute函数。如果我硬编码参数然后一切正常,但显然我不想硬编码。如何绑定url参数以使其有效?

1 个答案:

答案 0 :(得分:0)

你需要让你的部分绝对,如:

templateUrl: '/views/item.html',

添加参数后,它会将其视为另一个目录深度,并希望加载/item/views/item.html

之类的内容