Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-css文件中的参数_Angularjs - Fatal编程技术网

AngularJS-css文件中的参数

AngularJS-css文件中的参数,angularjs,Angularjs,我目前正在从自定义框架迁移到Angular。因为我们已经有了遗留资源,所以所有前端资源(如样式表、图像和脚本)都应该位于子域上,并且所有URL都应该是绝对的。我有一堆css文件,其中一个参数指定了我们的静态域。我正在寻找一种在css中使用参数的本地角度方法,因此我将能够编写smth,如: .body {background: "{{domain}}/img/bg.png";} 目前,在我们的框架中,样式被加载,比如说,$http.get(),然后用.replace处理,然后附加到DOM中 有什

我目前正在从自定义框架迁移到Angular。因为我们已经有了遗留资源,所以所有前端资源(如样式表、图像和脚本)都应该位于子域上,并且所有URL都应该是绝对的。我有一堆css文件,其中一个参数指定了我们的静态域。我正在寻找一种在css中使用参数的本地角度方法,因此我将能够编写smth,如:

.body {background: "{{domain}}/img/bg.png";}
目前,在我们的框架中,样式被加载,比如说,$http.get(),然后用.replace处理,然后附加到DOM中

有什么想法吗


谢谢。

试试
$interpolate
服务。将其注入一个方法中,然后像这样使用:

var fn = $interpolate(cssText); 
var processedCssText = fn(scope); // scope is whatever obj that contains `domain` and other properties that might be used inside cssText
如果需要,您甚至可以配置打开和关闭符号。有关更多信息,请参见
$interpolate

您想要的更少


这是一种“动态样式表语言”。

您是否计划将类似于代码片段的内容放入css或html文件中?您可以将css与图像资源一起存储在该子域中,这样就不需要在图像中包含动态URLCSS@WordsLikeJared对不起,我不明白你的意思。你的意思是样式表嵌入到html中还是一个文件?它应该是一个单独的文件。@enr.code OMG css实际上位于子域上,但我甚至没有检查它是否有效:)谢谢!无论如何,我认为如果有一种方法可以参数化样式表,它可能会很有用。我想说的是,如果你在引用的css文件中(在这种情况下,我认为Angular不会在那里使用这种语法)或在
块中的html文件中截取代码,这可能会接受这样的角度语法。假设有多个域,您能在不将其硬编码为变量的情况下动态检索它们吗?假设您可以与javascript中较少的变量进行交互,请参阅以下帖子:@finishingmove the OP已经使用$http.get()获取css文件的字符串内容$“插值”适用于包含插值文本的任何字符串。因此,是的,将实现问题所要求的。我认为问题是,是否有可能将javascript(角度)变量放入*.css文件中。我不是叫你出来,但我认为你的建议不适用。如果我错了,请解释。我不明白如何将此代码放在*.css文件中。再看一遍这个问题,他说“目前在我们的框架中,样式是加载的,比如说,$http.get(),然后用.replace进行处理,然后附加到DOM中。”我的答案基于此:他可以使用我建议的方法使绑定工作,而不必执行.replace()。不,AngularJS不能直接在CSS文件上工作,你必须以文本的形式获取内容并手动执行插值,这就是我回答的全部要点。