Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
Typescript 将自定义指令绑定到Angular2中的Observable_Typescript_Angular_Rxjs_Angular2 Directives - Fatal编程技术网

Typescript 将自定义指令绑定到Angular2中的Observable

Typescript 将自定义指令绑定到Angular2中的Observable,typescript,angular,rxjs,angular2-directives,Typescript,Angular,Rxjs,Angular2 Directives,在Angular2中,我似乎无法理解数据绑定如何与自定义指令一起工作。假设我有一个自定义指令FoobarDirective,它接受一个@输入,这是一个可观察的: @Directive({ selector: 'foobar' }) export class FoobarDirective implements OnInit { @Input() anObservable: Observable<string[]>; ngOnInit() { this.anObs

在Angular2中,我似乎无法理解数据绑定如何与自定义指令一起工作。假设我有一个自定义指令
FoobarDirective
,它接受一个
@输入,这是一个
可观察的

@Directive({
  selector: 'foobar'
})
export class FoobarDirective implements OnInit {
  @Input() anObservable: Observable<string[]>;

  ngOnInit() {
    this.anObservable.subscribe(values => {
      console.log(values);
    });
  }
}
@指令({
选择器:“foobar”
})
导出类FoobarDirective实现OnInit{
@Input()可观察:可观察;
恩戈尼尼特(){
this.anObservable.subscribe(值=>{
console.log(值);
});
}
}
还有一个实现组件,如下所示:

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>{{ message }}</h2>
      <div foobar [anObservable]="toBind"></div>
    </div>
  `,
  directives: [FoobarDirective]
})
export class App implements OnInit {
  message: string;
  toBind: Subject<string[]>;

  ngOnInit() {
     this.message = 'Angular2 works!';

     this.toBind = new Subject<string[]>();
     this.toBind.next(['a', 'b', 'c']);
  }
}
@组件({
选择器:“我的应用程序”,
提供者:[],
模板:`
{{message}}
`,
指令:[FoobarDirective]
})
导出类应用程序实现OnInit{
消息:字符串;
toBind:主题;
恩戈尼尼特(){
this.message='Angular2有效!';
this.toBind=新主题();
this.toBind.next(['a','b','c']);
}
}
…但我得到以下错误:
无法绑定到“anObservable”,因为它不是已知的本机属性


这里有一个。

我认为问题在于指令的选择器:

@Directive({
  selector: '[foobar]' // <------
})
export class FoobarDirective implements OnInit {
  (...)
}
@指令({
选择器:“[foobar]”//