gpt4 book ai didi

angular - ngIf 与 viewchild

转载 作者:行者123 更新时间:2023-12-02 16:55:22 24 4
gpt4 key购买 nike

我是 angular2 的新手,并不专业。我有一个父子组件,当用户单击按钮时,我希望子组件的选择器显示一些内容。所以它应该是条件,并且它也是从子组件中使用的。这是我的代码:父级 HTML:

<div *ngIf="page2">
<add-property-page2></add-property-page2>
</div>

<div class="text-center col-sm-12">
<button [disabled]="!propertyForm.form.valid"
(click)="onSubmit($event,value,amlak)"
type="submit" class="btn btn-success">Continue
</button>
</div>

和父组件:

import {Component, OnInit, ViewChild, ViewEncapsulation, Input } from '@angular/core';
import {Amlak} from '../models/amlak';
import {AddPropertyPage2Component} from './add-paroperty-page2.component';
@Component({
selector: 'add-property',
styleUrls: ['./selection.css'],
templateUrl: './add-property.html',
providers: [DataService, Amlak],
})
export class AddPropertyComponent {
private page2: boolean;
@ViewChild(AddPropertyPage2Component)
private addPropertyPage2: AddPropertyPage2Component;
constructor(private amlak: Amlak, private dataService: DataService
) {
this.userLogined = AuthenticationService.check();
}
onSubmit($event:any,value,amlak) {
$event.preventDefault();
if (this.page2) {
this.amlak.emkanat = this.addPropertyPage2.emkan.filter(e => e.checked ==
true);
}
}

现在我的问题是,当用户单击时,在父级中显示子级选择器的最简单方法是什么。因为错误是:无法读取未定义的属性“emkan”。我知道这是因为 *ngIf 但不知道我应该做什么。另外我应该说我可以使用 viewchild 方法,就像代码中的那样。感谢您以简单的方式提供的帮助。

最佳答案

你的问题有点老了,但我也遇到了同样的问题,也许我的答案可以帮助其他人。

*ngIf 从 DOM 中删除 HTML 元素,因此 ViewChild 在 DOM 中找不到该元素。

首先我想使用 ngShow 指令。但在 Angular 5 中它不再存在了。但在版本 5 中,您可以轻松绑定(bind)到 [hidden] 属性,这不会从 DOM 中删除元素,而是将其隐藏,就像 ngShow 指令和 ViewChild 可以再次查找该元素一样。

关于angular - ngIf 与 viewchild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168891/

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