gpt4 book ai didi

typescript - 将自定义指令绑定(bind)到 Angular2 中的 Observable

转载 作者:太空狗 更新时间:2023-10-29 18:26:42 24 4
gpt4 key购买 nike

我似乎无法弄清楚数据绑定(bind)如何与 Angular2 中的自定义指令一起使用。假设我有一个自定义指令 FoobarDirective,它接受一个 @Input,它是一个 Observable:

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

ngOnInit() {
this.anObservable.subscribe(values => {
console.log(values);
});
}
}

还有一个像这样的实现组件:

@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']);
}
}

...但是我收到以下错误:无法绑定(bind)到“anObservable”,因为它不是已知的 native 属性

这是一个 plunker .

最佳答案

我认为问题出在你的指令选择器上:

@Directive({
selector: '[foobar]' // <------
})
export class FoobarDirective implements OnInit {
(...)
}

因为你使用了错误的选择器,指令没有被应用所以 Angular2 不知道这个输入...

关于typescript - 将自定义指令绑定(bind)到 Angular2 中的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com