如何在 nativescript 中以编程方式获取 Stacklayout id

How to get the Stacklayout id programatically in nativescript

我是新手 nativescript.I 不知道如何获取堆栈布局 ID properly.I 正在使用打字稿处理 Angular2。我试过下面的代码。我在命令提示符 issue 下面得到了这个。

JS:Error TypeError : Cannot set property 'visiblility' of undefined  Context[object Object]

Html:

<StackLayout #target visibility="collapse" id ="stackLayout"> .....  </StackLayout> 

在单击按钮时,我需要以编程方式将 stacklayout 的可见性显示为可见。

打字稿:

public stackLayout:StackLayout;

onTap(args: EventData) {

    this.animate();
}

public animate() {

   this.stackLayout.visibility = "visible" ; 
}

虽然您可以通过编程方式访问 StackLayout (Google @ViewChild),但稍微重构一下代码可能更容易(我省略了不相关的部分):

HTML:

<StackLayout (tap)="stackTapped()" [visibility]="stackVisible ? 'visible' : 'collapsed'"></StackLayout>

或:

<StackLayout (tap)="stackTapped()" *ngIf="stackVisible"></StackLayout>

组件:

stackVisible = false;

stackTapped(): void {
  this.stackVisible = true;
}