我有一个指令,我想为该指令注入一些CSS。
由于同一页面中可能有多个指令,我想避免多次注入该CSS。我应该使用什么方法? .run
? .config
?
另外,我究竟会如何注入CSS?
为了这个例子,让我们说我只想注入.my-item { background: blue; }
答案 0 :(得分:1)
您可以通过执行以下操作以角度添加一些生成的CSS:
angular.element(document).find('head').prepend('<style type="text/css">.my-item { background: blue; }</style>');
为了确保不会多次注入,您可以创建一个服务CssSvc
,它可以跟踪生成的CSS是否已经注入。
app.service('CssSvc', function () {
var svc = this;
// keep track if injected
svc.injected = false;
});
然后,您可以将服务注入到您的指令中,并且仅在尚未运行的情况下运行上述代码。
if(!CssSvc.injected) {
angular.element(document).find('head').prepend('<style type="text/css">.my-item { background: blue; }</style>');
CssSvc.injected = true;
}