2017-08-14 55 views
0

我在Angular(v4)中构建游戏,并且完全意识到直接dom操作很少(如果有的话)角度的正确路线。然而,对于我正在建设的东西,我不确定我会看到另一条可行的途径。角度2不断更新dom位置的最佳方式

我需要的是通过同时更新几个元素的旋转位置来处理它的组件(想象一下太阳系模型)。我看到有两条主要路线,第一条是直接操作dom,更新组件输入更改。第二个是具有内联样式标签的组件,例如[style.whatever]="thing.whatever"

我的第二条路线似乎有点像它仍然是直接的dom操作,只是没有在JavaScript中。

我喜欢尽可能以正确的方式做事,所以任何输入都会有帮助。

我没有在这个项目中使用/计划/想要使用JQuery。

更新

刚刚意识到我是个白痴,我不会需要编程DOM更新,我只需要设置,我需要它来开始最初的CSS属性,以及动画速度。由于它是一个不变的事情,有了可预测的动画,我可以让css完成所有的工作。我仍然想知道在代码中设置这些css属性是最合适的,还是作为组件的属性。

回答

0

这涉及到我的脑海里迅速的你可以做什么(不全面,当然)

使用绑定,像什么:

@HostBinding('style.whatever') 
    whatever: thing 


    @HostListener('window:resize', ['$event']) 
    setHeight() { 
    this.height = 200px; 
    } 

模板变量

@ViewChild('input') input: ElementRef; 
<input #input ...> 
+0

谢谢你你的答案。然而,我并不真正在寻找如何去做,更多的是如果有一种方法不那么操纵(< - 科学术语)。此外,它不会在窗口大小调整或一些外部事件,它会每隔一秒左右。 – Nieminen