1

我有一条路线定义为

$routeProvider.when('/:culture/:gameKey/:gameId/closed', { templateUrl: '/templates/tradingclosed', 控制器: TradingClosedCtrl });

我希望在以某种方式请求模板时包含“文化”参数,这样我就可以提供翻译后的模板。

这可能吗?

4

2 回答 2

1

如果我没看错,您想以某种方式使用cultureurl 路由中的参数来确定检索模板的位置。

可能有更好的方法,但这篇文章描述了检索$routeParams中央控制器内部ng-include以动态加载视图。

与此类似的东西:

angular.module('myApp', []).
    config(function ($routeProvider) {
        $routeProvider.when('/:culture/:gameKey/:gameId/closed', {
            templateUrl: '/templates/nav/urlRouter.html',
            controller: 'RouteController'
        });
    });

function RouteController($scope, $routeParams) {
        $scope.templateUrl = 'templates/tradingclosed/' + $routeParams.culture + '_template.html';
    }

将此作为您的urlRouter.html

<div ng-include src="templateUrl"></div>

您可以使用 ng-controller 定义要在视图中加载的控制器并访问$routeParams附加路由参数:

<div ng-controller="TradingClosedCtrl">
</div>
于 2012-08-23T16:16:07.697 回答
0

我已经用@Gloopy 建议的解决方案的工作Plnkr 示例发布了类似的问题

没有 ng-include 无法实现的原因是路由是在“配置”块中完成的,您不能在其中注入任何值(您可以在模块文档中阅读这些块,模块加载和依赖项部分

如果你不想引入新的范围,你可以用我的 ng-include 指令的剥离版本替换 ng-include,它与 ng-include 完全一样,但不要创建新的范围:rawInclude 指令的来源

希望该解决方案能够满足您的用例。

于 2012-12-27T11:54:58.927 回答