首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是视角的ElementRef?

什么是视角的ElementRef?
EN

Stack Overflow用户
提问于 2020-02-28 19:04:12
回答 2查看 1.3K关注 0票数 0

你好,我是AngularJs的新手,最近我回顾了一些角码,我看到这样的:

代码语言:javascript
复制
import { Component, AfterViewInit, ElementRef, ViewChild } from '@angular/core';
import { Network, DataSet } from 'vis';

@Component({
  selector: 'app-test',
  template: '<div #network></div>'
})
export class TestComponent implements AfterViewInit {
  @ViewChild('network', {static: false}) el: ElementRef;
  private networkInstance: any;

  ngAfterViewInit() {
     const container = this.el.nativeElement;
     const nodes = new DataSet<any>([
        {id: 1, label: 'Node 1'},
        {id: 2, label: 'Node 2'},
        {id: 3, label: 'Node 3'},
        {id: 4, label: 'Node 4'},
        {id: 5, label: 'Node 5'}
    ]);

    const edges = new DataSet<any>([
        {from: 1, to: 3},
        {from: 1, to: 2},
        {from: 2, to: 4},
        {from: 2, to: 5}
    ]);
    const data = { nodes, edges };

    this.networkInstance = new Network(container, data, {});
  }
}

参考资料是:How to make Network visualization work in vis.js with Angular?

因此,我感到困惑的是什么是@ viewchild ('network',{静态: false}) el: ElementRef;作为我的理解,viewchild通常用于父组件来调用子组件。但是在本例中,我尝试运行代码,它不使用定义的子组件。那么,这里的ElementRef是“孩子”?

EN

回答 2

Stack Overflow用户

发布于 2020-02-28 19:17:44

这里的ViewChild允许您在同一个组件中添加一个对html元素的引用(在您的例子中是div和#network,它类似于document.getElementById,但它只检测到同一组件中的“子”)。

票数 3
EN

Stack Overflow用户

发布于 2020-02-28 19:57:06

ViewChild经常用于引用子组件。它还可以用于引用模板中的HTML元素。ElementRef是一种以角度包装HTML元素并以编程方式操作它们的方法。在您的示例中,is为模板变量#network分配了一个模板变量,它用作选择器来捕获组件的el属性中的特定内容。删除模板时,选择器不返回任何元素,因此el仍未定义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60457799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档