我正在学习角度 4,并希望实现一个指令,该指令导致宿主元素的背景颜色在数组中列出的 7 中循环。理想情况下,我希望它是连续的。我不知道我需要挂钩哪些生命周期挂钩。这就是我目前所拥有的。目前,它甚至没有像使用SetTimeOut
. 我已经注释掉了该While
块,因为它只是挂起浏览器。
import {
Directive,
OnInit,
HostBinding,
Input
} from '@angular/core';
@Directive({
selector: '[rainbowize]'
})
export class RainbowizeDirective {
colors: Array<string>;
@HostBinding('style.backgroundColor') bgColor: string;
constructor() {
this.colors = ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red'];
}
ngOnInit(){
let that = this;
//while (true) {
for (let i = 0; i < 7; i++) {
console.log(that.colors[i]);
setTimeout(function () {
that.bgColor = that.colors[i];
}, 1000)
}
//}
}
}
html:
<h2 rainbowize >This is a raibowized paragraph</h2>