To zależy co callSomeMethod()
robi, ale jedną z możliwości jest dodanie dyrektywy do element *ngIf
i wykonaj tę logikę w haku tej dyrektywy.
<div *ngIf="obj.someProperty" some-method-directive>
<!--render inner parts-->
</div>
I gdzie indziej:
@Directive({
selector='[some-method-directive]',
})
class SomeMethodDirective implements OnInit { // OnInit imported from angular2/core
ngOnInit(){
// insert your someMethod lofic
}
}
Jeśli potrzebujesz dostępu do komponentu macierzystego w tej metodzie można uzyskać Ahold nim poprzez wstrzyknięcie konstruktora w dyrektywie:
constructor(@Host(ParentComponent) private parent: ParentComponent){ }
i będziesz wtedy mieć do niego dostęp poprzez this.parent
.
Jest to najbardziej analogiczne podejście, jakie mogę zastosować w podejściu ng1, ale tak jak powiedziałem - w zależności od tego, co musi osiągnąć someMethod()
, może to nie być możliwe rozwiązanie. Jeśli nie, skomentuj/edytuj swoje pytanie, aby wyjaśnić, dlaczego tak jest, a to pozwoli mi lepiej zrozumieć, co tu robimy.
podobne do http://stackoverflow.com/questions/36427670/angular2-calling-custom-function-after-ngswitch-new-view-is-created/36427769#36427769 –