StackLayout 中的 ngFor 在构建 apk 后显示为最后一个组件
ngFor inside StackLayout is displayed as last component after building apk
我有一个StackLayout
的小视野。使用 tns preview
时,内部组件将按指定顺序按预期显示。但是,在使用 apk 时,CheckBoxes
显示为 StackLayout
的最后一个组件。原因似乎是使用 ngFor
.
这里有两张截图说明了这个问题:
Correct behavior when using tns preview
Incorrect behavior when using apk
这是我的代码:
<app-action-bar title="{{getTitle()}} - Lernen"></app-action-bar>
<StackLayout>
<Label text="{{currentQuestion.question}}" textwrap="true"></Label>
<CheckBox *ngFor="let answer of this.userAnswers" text="{{answer.answer}}"></CheckBox>
<Button text="Weiter!"></Button>
<Button text="Feedback"></Button>
</StackLayout>
非常欢迎任何帮助!
已在@nativescript/angular 10.1.4 和 10.1.5
中修复
在以后的版本中是known issue which already has been fixed。
如果由于某种原因您无法更新您的框架版本,作为快速修复,您可以将您的 *ngFor
包装到一个额外的容器中以保留顺序。在您的情况下,它可能如下所示:
<StackLayout>
<Label text="{{currentQuestion.question}}" textwrap="true"></Label>
<StackLayout>
<CheckBox *ngFor="let answer of this.userAnswers" text="{{answer.answer}}"></CheckBox>
</StackLayout>
<Button text="Weiter!"></Button>
<Button text="Feedback"></Button>
</StackLayout>
我有一个StackLayout
的小视野。使用 tns preview
时,内部组件将按指定顺序按预期显示。但是,在使用 apk 时,CheckBoxes
显示为 StackLayout
的最后一个组件。原因似乎是使用 ngFor
.
这里有两张截图说明了这个问题:
Correct behavior when using tns preview
Incorrect behavior when using apk
这是我的代码:
<app-action-bar title="{{getTitle()}} - Lernen"></app-action-bar>
<StackLayout>
<Label text="{{currentQuestion.question}}" textwrap="true"></Label>
<CheckBox *ngFor="let answer of this.userAnswers" text="{{answer.answer}}"></CheckBox>
<Button text="Weiter!"></Button>
<Button text="Feedback"></Button>
</StackLayout>
非常欢迎任何帮助!
已在@nativescript/angular 10.1.4 和 10.1.5
中修复在以后的版本中是known issue which already has been fixed。
如果由于某种原因您无法更新您的框架版本,作为快速修复,您可以将您的 *ngFor
包装到一个额外的容器中以保留顺序。在您的情况下,它可能如下所示:
<StackLayout>
<Label text="{{currentQuestion.question}}" textwrap="true"></Label>
<StackLayout>
<CheckBox *ngFor="let answer of this.userAnswers" text="{{answer.answer}}"></CheckBox>
</StackLayout>
<Button text="Weiter!"></Button>
<Button text="Feedback"></Button>
</StackLayout>