我的设计:
我有一个利用NGIF的标签,因此子内容不在dom中。问题在于内部组件需要订阅设置。有没有一种方法可以使我的ViewChild(如果不为null)可以运行一个函数?
@ViewChild("fooId")
MyCustomClass foo;
StreamSubscription sub = null;
对我来说,我想我需要做一些while循环,并要定期检查foo以查看它是否不为空。
setUp() async {
while(sub == null){
if (foo != null){
sub = foo.onChanged.listen((_)=>_func());
}
await new Future.delayed(new Duration(seconds: 1));
}
}
但似乎有点脏。
有没有一种方法可以在您的init文件中设置类似于以下内容的内容:
ngOnInit(){
// foo.when( () => foo !=null, (){
// sub = foo.onChanged.listen((_)=>_func());
// });
}
很明显,这是在伪代码中,但是我认为可能有比某些轮询代码更好的选项,以便继续检查空性。
答案 0 :(得分:2)
设置foo
的设置者:
MyCustomClass _foo;
@ViewChild("fooId")
set foo(MyCustomClass value) {
_foo = value;
...
}