gpt4 book ai didi

dart - ViewChild为null,因为它不在dom(NGIF)中,有没有办法写一个发现时要运行的函数?

转载 作者:行者123 更新时间:2023-12-03 02:53:24 25 4
gpt4 key购买 nike

我的设计:

我有一个使用NGIF的标签,因此子内容不在dom中。问题在于内部组件需要设置订阅。有没有一种方法可以使我的ViewChild(如果不为null)可以运行一个函数?

@ViewChild("fooId")
MyCustomClass foo;

StreamSubscription sub = null;

对我来说,我当时想我需要做一些while循环,但要定期检查foo以查看它是否不为null有所延迟。
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());
// });
}

显然,这是在伪代码中,但我认为可能有比某些轮询代码更好的选项,以便继续检查是否为空。

最佳答案

foo设置为 setter :

MyCustomClass _foo;

@ViewChild("fooId")
set foo(MyCustomClass value) {
_foo = value;
...
}

关于dart - ViewChild为null,因为它不在dom(NGIF)中,有没有办法写一个发现时要运行的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51445476/

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