声明指令templateUrl相对于root

Ufu*_*arı 58 javascript angularjs angularjs-directive

我目前正在声明相对于当前窗口位置的templateUrl.

cvApp.directive('personalDetails', function () {

    return {
        restrict: 'A',
        templateUrl: '../../Scripts/app/templates/personalDetails.html'
    };

});
Run Code Online (Sandbox Code Playgroud)

如何相对于应用程序的根目录创建templateUrl?我正在寻找这样的东西:

templateUrl: '~/Scripts/app/templates/personalDetails.html'
Run Code Online (Sandbox Code Playgroud)

AngularJS可以做到这一点吗?

Ufu*_*arı 81

看起来它是支持的.摘自AngularJS Google Group的一个主题:

带有"/"前缀的url是相对于域的,没有"/"前缀它将相对于main("index.html")页面或基本URL(如果你在html5模式下使用location).

这很好用:

templateUrl: '/Scripts/app/templates/personalDetails.html'
Run Code Online (Sandbox Code Playgroud)

  • 一旦我从templateUrl值中删除了前导斜杠,这在ASP.NET MVC中使用了BASE标记. (6认同)

Bar*_*all 15

看起来你正在尝试做ASP.NET风格的应用程序相对路径,但客户端.修复实际上是HTML:在头部添加基本标记,如下所示:

<base href="<%= Request.ApplicationPath %>" />
Run Code Online (Sandbox Code Playgroud)

然后保持模板路径相对于此,如

templateUrl: 'Scripts/app/templates/personalDetails.html'
Run Code Online (Sandbox Code Playgroud)