角度-在路线设置中使用路线参数

时间:2018-06-28 15:16:34

标签: javascript angularjs routes angular-routing

我正在尝试创建一个BaseController,我的控制器可以对其进行扩展以处理所有模型的历史记录操作。目前(对于其他路线),我将其设置如下:

$routeProvider.when('/', {
  redirectTo: '/static/campaigns'
}).when('/static/campaigns/new', {
  templateUrl: 'campaigns/new.html',
  controller: 'CampaignNewController'
}).....

对于历史路线,我想做的是一条涵盖所有模型的通用路线,但是我不确定是否可以在如下所示的设置中使用路线参数。

when('/static/history/:model_name', {
  templateUrl: model_name + '/history.html',
  controller: model_name + 'Controller'
})

1 个答案:

答案 0 :(得分:0)

如果您查看文档: https://docs.angularjs.org/api/ngRoute/provider/$routeProvider#when 您可能会注意到,templateurl可以是字符串或函数。也许如果您在templateUrl的右侧创建了一个函数,并注入了$ routeParams并读取了model_name的值并返回了带有model_name的字符串,那么它可能就可以了。

您将无法对控制器执行相同操作;但是,您将必须创建一个服务,该服务以model_name作为输入,并且具有与多个控制器相同的逻辑。