繁体   English   中英

Angular JS指令 - 相对于HTML的CSS文件的位置

[英]Angular JS directive - location of CSS file relative to HTML

我的指令使用HTML文件。 HTML文件使用CSS样式表。 我需要分发指令js,HTML和CSS文件,因此CSS位置定义需要相对于HTML。

注意: 这是我如何解决 HTML的位置,我有待解决CSS文件的位置。

我把CSS文件放在与HTML文件相同的文件夹中,然后在HTML中定义:

<link rel="stylesheet" href='somefile.css'>

但是这指向域根,而不是指向HTML文件位置。

任何想法如何实现这一目标?

我认为有两种方法可以解决您的问题,因为您不知道指令的位置:

解决方案1 ​​ - 古老的HTML方式

如果CSS的长度很小,您可以通过样式标记将其直接包含在模板HTML本身中。

<style type="text/css">
    Add style rules here
</style>

解决方案2 - 角度方式(最推荐)

使用ngHref指令。

在你的directive.js代码中,你可以将directive.html的路径放到scope / rootScope变量中,然后你可以从directive.html访问它。

在directive.js中

link: function (scope, iElement, iAttrs) {
     scope.htmlPath = <path of templateURL>;
 }

在directive.html中

<link rel="stylesheet" ng-href="{{ htmlPath }}/filename.css">

注意:

我希望你没有使用Gulp来构建角度JS代码。 但是,如果你正在使用gulp,你可以添加一个gulp任务并将所有CSS管道传输到一个CSS并注入你的索引。

您需要为css和html(模板文件)创建单独的目录,并使用从root到css文件夹的完整路径

<link rel="stylesheet" href='/angualr/css/style.css'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM