Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angular2获取组件的选择器参考_Angular - Fatal编程技术网

angular2获取组件的选择器参考

angular2获取组件的选择器参考,angular,Angular,我正在尝试将这个库集成到angular2应用程序中,按照这个库的工作方式,您必须通过传递选择器名称将progressbar添加到容器中 var ProgressBar = require('progressbar.js'); // Assuming we have an empty <div id="container"></div> in HTML var bar = new ProgressBar.Line('#container', {easing: 'ease

我正在尝试将这个库集成到angular2应用程序中,按照这个库的工作方式,您必须通过传递选择器名称将progressbar添加到容器中

var ProgressBar = require('progressbar.js');

// Assuming we have an empty <div id="container"></div> in HTML

var bar = new ProgressBar.Line('#container', {easing: 'easeInOut'});
bar.animate(1);  // Value from 0.0 to 1.0 
var ProgressBar=require('ProgressBar.js');
//假设我们在HTML中有一个空的
var bar=newprogressbar.Line(“#container”{easeInOut:'easeInOut'});
条。设置动画(1);//从0.0到1.0的值
这里的问题是,当我需要多个进度条时,每个进度条都应该包含在自己的组件中,否则所有进度条都将添加到同一个容器中(这不是我想要的)

var ProgressBar=require('ProgressBar.js');
@组成部分({
选择器:“进度条”,
模板:``
})
导出类ProgressBarCmp{
@输入()颜色;
@输入()笔划宽度;
恩戈尼尼特(){
this.bar=new ProgressBar.Circle('#pb container',{
颜色:颜色,
strokeWidth:strokeWidth,
});
this.bar.animate(this.skill.grade/100);
}

我应该为每个组件都有一个唯一的ID,还是有一个角度的方法来解决这个问题?

多亏了@JBNizet注释,通过传递
this.elementRef.nativeElement
而不是
#pb container

var ProgressBar = require('progressbar.js');
@Component({
  selector: 'progress-bar',
  template: ''    // <= no need for a container anymore 
})
export class ProgressBarCmp {

  @Input() color;
  @Input() strokeWidth;

  constructor(private elementRef:ElementRef){
  }

  ngOnInit() {
    this.bar = new ProgressBar.Circle(this.elementRef.nativeElement, {      
      color: this.color,
      strokeWidth: this.strokeWidth,
    });
    this.bar.animate(this.skill.grade / 100);
}
var ProgressBar=require('ProgressBar.js');
@组成部分({
选择器:“进度条”,

模板:'/由于@JBNizet comment,通过传递
this.elementRef.nativeElement
而不是
#pb container
解决了问题

var ProgressBar = require('progressbar.js');
@Component({
  selector: 'progress-bar',
  template: ''    // <= no need for a container anymore 
})
export class ProgressBarCmp {

  @Input() color;
  @Input() strokeWidth;

  constructor(private elementRef:ElementRef){
  }

  ngOnInit() {
    this.bar = new ProgressBar.Circle(this.elementRef.nativeElement, {      
      color: this.color,
      strokeWidth: this.strokeWidth,
    });
    this.bar.animate(this.skill.grade / 100);
}
var ProgressBar=require('ProgressBar.js');
@组成部分({
选择器:“进度条”,
模板:“”//表示可以传递DOM元素本身而不是选择器。有关如何获取组件的DOM元素,请参阅。表示可以传递DOM元素本身而不是选择器。有关如何获取组件的DOM元素,请参阅。