Javascript 角度2不';我不认识DOM的变化

Javascript 角度2不';我不认识DOM的变化,javascript,angular,Javascript,Angular,我在我的项目中使用了一些角度2组件,我需要改变一些组件的位置。我首先使用DOM来更改位置,比如replaceChild或insertBefore,诸如此类。但是我注意到angular 2不知道DOM的变化,似乎我的DOM变化已经超过angular 2的生命周期那么,有没有办法在angular2中编辑DOM?或者以某种方式更改组件的顺序? 因为你可以理解我在做什么,我正在构建一些组件,我想拖动它们并切换它们的位置。我在JQuery中找到了一个插件,您可以在它的GitHub站点()上找到gif。我想

我在我的项目中使用了一些角度2组件,我需要改变一些组件的位置。我首先使用DOM来更改位置,比如replaceChild或insertBefore,诸如此类。但是我注意到angular 2不知道DOM的变化,似乎我的DOM变化已经超过angular 2的生命周期那么,有没有办法在angular2中编辑DOM?或者以某种方式更改组件的顺序?

因为你可以理解我在做什么,我正在构建一些组件,我想拖动它们并切换它们的位置。我在JQuery中找到了一个插件,您可以在它的GitHub站点()上找到gif。我想实现类似于gif的东西

我在GitHub上找到了一些可能有用的东西,但我不知道如何使用它。

我意识到这是不久前提出的问题,但对于其他可能正在与类似问题斗争的人来说。。。Angular使用的区域我相信是monkey补丁异步JavaScript操作

要触发Angular可能无法获取的DOM更新,可以使用区域运行

import { NgZone } from '@angular/core';

@Injectable()
export class SomeService {

    constructor(private zone: NgZone) {}

    someFunction() {
        this.zone.run(() => {
            // Your code goes here!
        });
    }

}

看看这个

为了遵循最佳实践,开发人员应该使用它来修改/使用DOM。下面是一个示例,演示如何使用ViewChild获取DOM元素。可以使用“#”标记要使用的元素,并将其放在组件上

如果希望在组件中获取子元素的集合,则应使用


这个问题是在我开始学习Angular时提出的,这是一个愚蠢的问题,我相信有很多初学者喜欢直接操作DOM。请以“角度方式”更新您的DOM。

您是否尝试使用$scope.$apply()?@Dan,我使用的是angular2。我用角形标签是个错误。很抱歉