声明指令templateUrl相对于root

时间:2013-06-02 20:31:37

标签: javascript angularjs angularjs-directive

我目前正在相对于当前窗口位置说明templateUrl。

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

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

});

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

templateUrl: '~/Scripts/app/templates/personalDetails.html'

AngularJS可以做到这一点吗?

4 个答案:

答案 0 :(得分:80)

看起来支持它。取自thread on AngularJS Google Group

  

带有“/”前缀的网址是相对于域名的,而不是“/”   前缀它将相对于main(“index.html”)页面或基本URL   (如果您在html5模式下使用位置)。

这很好用:

templateUrl: '/Scripts/app/templates/personalDetails.html'

答案 1 :(得分:15)

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

<base href="<%= Request.ApplicationPath %>" />

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

templateUrl: 'Scripts/app/templates/personalDetails.html'

答案 2 :(得分:3)

使用&#39; ././脚本/ app / templates / personalDetails.html&#39;

它对我有用。

答案 3 :(得分:0)

angular 4使用webpack作为捆绑器。

./ means relative path to current folder



../ means parent folder

domain = src

root = src / index

例如在app.component.ts文件下面, url表示xxx.html xxx.css与xxx.ts

位于同一文件夹中
./ is relative path as current folder

../ is relative path as parent folder

@Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
})

COMPONENT-RELATIVE PATHS IN ANGULAR