gpt4 book ai didi

typescript - 当满足某些 `*ngIf` 条件时,如何从类装饰器中调用某个方法?

转载 作者:太空狗 更新时间:2023-10-29 17:27:15 24 4
gpt4 key购买 nike

当满足某些 *ngIf 条件时,如何从类装饰器中调用某个方法。我有一个完全像 this AngularJS 的场景使用 ng-init() 但 ng-init 不是 Angular2 的一部分的问题

<div *ngIf="obj.someProperty" callSomeMethod() >
<!--render inner parts-->
</div>

最佳答案

这取决于 callSomeMethod() 正在做什么,但一种可能性是向 *ngIf 元素添加指令,并在 中执行该逻辑该指令的 OnInit 钩子(Hook)。

<div *ngIf="obj.someProperty" some-method-directive>
<!--render inner parts-->
</div>

其他地方:

@Directive({
selector='[some-method-directive]',
})
class SomeMethodDirective implements OnInit { // OnInit imported from angular2/core

ngOnInit(){
// insert your someMethod lofic
}
}

如果你需要在这个方法中访问父组件,你可以通过指令中的构造函数注入(inject)来获取它:

constructor(@Host(ParentComponent) private parent: ParentComponent){ }

然后您将可以通过 this.parent 访问它。

这是我能想到的与 ng1 方法最相似的方法,但正如我所说 - 根据 someMethod() 需要完成的任务,它可能不是一个可行的解决方案。如果没有,请评论/编辑您的问题以解释原因,这会让我更好地了解我们在这里做什么。

关于typescript - 当满足某些 `*ngIf` 条件时,如何从类装饰器中调用某个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705953/

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