在angular 2中使用浏览器DOM的方法

在angular 2中使用浏览器DOM的方法,angular,angular2-directives,angular2-template,Angular,Angular2 Directives,Angular2 Template,如果我想创建一个全局DOM元素并从当前指令的许多实例中使用它,我对如何使用本机DOM元素的理解很差 有人能解释一下如何使用指令和DOM吗?下面是一种获取与组件关联的元素的方法 import {Component, View, ElementRef, Inject, OnInit} from 'angular2/core'; declare var jQuery:any; @Component({ selector: 'jquery-integration' }) @View({

如果我想创建一个全局DOM元素并从当前指令的许多实例中使用它,我对如何使用本机DOM元素的理解很差


有人能解释一下如何使用指令和DOM吗?

下面是一种获取与组件关联的元素的方法

import {Component, View, ElementRef, Inject, OnInit} from 'angular2/core';

declare var jQuery:any;

@Component({
    selector: 'jquery-integration'
})

@View({
    templateUrl: './components/jquery-integration/jquery-integration.html'
})

export class JqueryIntegration implements OnInit {
    elementRef: ElementRef;

    constructor(@Inject(ElementRef) elementRef: ElementRef) {
        this.elementRef = elementRef;
    }

    ngOnInit() {
        jQuery(this.elementRef.nativeElement).find('.moving-box').draggable({containment:'#draggable-parent'});
    }
}
使用ElementRef作为基线,您可以使用jquery或任何其他DOM操作技术来引用其他元素

此示例使用jquery

以下是更多信息:

Angular 2的一个好处是,您可以像在Angular代码中使用vanlila JavaScript那样使用DOM。不需要具体的实践。但是这样一个指令的测试过程应该如何进行呢?对不起,兄弟,我不知道测试的知识。虽然你可以从google上的“如何测试web组件”文章开始。因为angular现在正在使用网络组件。谢谢您的回答。但是你能澄清一下吗?我应该如何测试这个?我的意思是-在第一个角有一个$window服务,我可以嘲笑它。这里有类似的东西吗?或者我应该在第二个角度采取完全不同的方法?