我正在努力使用ngStyle
指令在角度2中设置子标记的css属性。
我不确定它是否使我复杂化,我正在尝试将其应用于SVG。
我有一个微调器,实现如下:
<ion-spinner name="bubbles"></ion-spinner>
选择器来自ionic framework。
我目前的代码是:
@Component({
selector: 'some-selector',
template: `
<ion-spinner name="bubbles"></ion-spinner>
`
})
export class SomeComponent {
private someColour: string = "red"
}
我知道我可以使用组件控件中的styles数组来影响css样式(虽然由于封装(我认为)它必须进入自己的css样式表,而不是组件的样式其他明智的它只影响一些属性),我也可以使用ngStyle属性来动态css样式。但是,元素在html中出现如下:
<ion-spinner name="bubbles" class="spinner-bubbles">
<!--template bindings={}-->
<svg viewBox="0 0 64 64" style="top: 0px; left: 9px; animation-delay: -1000ms; animation-duration: 1000ms;">
<circle transform="translate(32,32)" r="5"></circle>
</svg>...
</ion-spinner>
并且css需要影响'circle'标记。我知道我可以使用的CSS是:
ion-spinner {
* {
fill: blue;
}
&.spinner-circles circle,
&.spinner-bubbles circle,
&.spinner-dots circle {
fill: blue;
}
}
由于旋转器有气泡,但是:
我正在使用角度“2.0.0-rc.1”
答案 0 :(得分:2)
它不是角度世界中的最佳替代方案,但如果ion-spinner
没有为内部<circle>
元素提供任何类型的“挂钩”,则可以获得对HTMLElement
元素的引用1}}实例(通过DOM)和操作,例如向它们添加类:
import { Component, ViewChild, ContentChild, ElementRef } from '@angular/core';
import { Spinner } from 'ionic?';
@Component({
selector: 'some-selector',
template: `
<ion-spinner name="bubbles"></ion-spinner>
`,
directives: [Spinner]
})
export class SomeComponent {
@ViewChild(Spinner, {read: ElementRef}) spinnerEl: ElementRef;
ngAfterViewInit() {
console.log("Spinner ElementRef: ", this.spinnerEl);
console.log("Spinner ElementRef.nativeElement: ", this.spinnerEl.nativeElement);
this.addClassForAllCirclesInsideElement(this.spinnerEl.nativeElement, "someClass");
}
addClassForAllCirclesInsideElement(nativeElement, classNameToAdd) {
// direct DOM manipulation...
let circles = nativeElement.querySelectorAll('circle');
circles.forEach((circle) => { circle.className += " " + classNameToAdd; })
}
}
答案 1 :(得分:0)
对特定样式使用CSS类,然后使用the NgClass directive动态更改
return redirect()->route("Roles")->with([
"key1" => "value1",
"key2" => "value2"
]);