动态更改目录模板

时间:2013-02-26 20:16:29

标签: angularjs angularjs-directive directive

我是Angular.js的新手,我正在尝试在不同客户的指令中使用不同的模板。

问题是,我有三种模板用于三种客户端,我想根据检测后客户端类型的结果为我的指令使用不同的模板

我在Googling之后找到的结果是关于向目录标记添加属性,但是当我准备好检测结果时,模板已经被编译。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以在指令模板中使用ngSwitch

答案 1 :(得分:1)

您可以在指令中注入一个变量,以查找模板的其他目录。

myApp.directive('testDirective', [
  'clientType', function(clientType) {
    return {
      ...
      templateUrl: '/templates/' + clientType + '/test.html'
    };
  }
]);

然后,您可以在应用程序之外设置常量“clientType”,并将其作为常量传递。

myApp.constant('clientType', 'mobile'); // Some type of function to determine this

您可能需要手动引导您的应用,以便有效地使用它。我在生产代码中做了类似的事情来控制模板的加载位置。