相对于 root 的声明指令 templateUrl

IT技术 javascript angularjs angularjs-directive
2021-02-18 06:12:40

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

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

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

});

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

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

AngularJS 能做到这一点吗?

4个回答

好像是支持的。摘自AngularJS Google Group 上的一个线程

带有“/”前缀的url是相对于域的,没有“/”前缀的它将是相对于主(“index.html”)页面或基本url(如果你在html5模式下使用位置)。

这工作正常:

templateUrl: '/Scripts/app/templates/personalDetails.html'
一旦我从 templateUrl 值中删除了前导斜杠,这对我在 ASP.NET MVC 中使用 BASE 标记起作用。
2021-04-18 06:12:40

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

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

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

templateUrl: 'Scripts/app/templates/personalDetails.html'
这种方法的问题在于文档中的每个其他相对 URL 现在都有这个前缀。
2021-04-27 06:12:40

使用“././Scripts/app/templates/personalDetails.html”

它对我有用。

angular 4 使用 webpack 作为打包器。

./ means relative path to current folder



../ means parent folder

域 = src

根 = 源代码/索引

例如下面的 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']
})

Angular 中的组件相关路径

AngularJS 和 Angular 4 是不同的库,不一定兼容。
2021-05-10 06:12:40