Angular 2:如何将parent组件的字段默认值设置回child组件?
Angular 2: How to set default value of field from parent component back to child component?
我有以下情况:child组件是一个 angular material 滑动开关,用于我的应用程序的不同部分。它用于 parentComponent1 和 parentComponent2。在 parentComponent1 中,我想将滑动切换的默认值设置为 true
,但在 parentComponent2 中,我希望将其设置为 false
。如何在 parent 组件中设置滑动开关的默认值?
我尝试了 angular 文档 (https://angular.io/guide/component-interaction#pass-data-from-parent-to-child-with-input-binding) 中概述的常用 @Input 方法,但没有成功。
我的 child 组件的片段:
<mat-slide-toggle *ngIf="toggleFilterText"
class="example-margin"
[color]="color"
[(ngModel)]="checked"
[disabled]="disabled"
(change)="onToggleFilterChange(checked)">
{{toggleFilterText}}
和child ts
@Input()
checked: boolean;
如何在我的 parent ts 文件中设置默认值?谢谢。
我假设您需要设置 'checked' 的值。将输入参数添加到您的 HTML 标签并将其设置为所需的值
<mat-slide-toggle *ngIf="toggleFilterText"
[checked] = "false"
class="example-margin"
[color]="color"
[(ngModel)]="checked"
[disabled]="disabled"
(change)="onToggleFilterChange(checked)" / >
这取决于您的父组件的设置方式以及它们是否是同一组件。
如果它们是不同的组件:
parent-component-1.ts
:
public class Parent1Component {
public checked: boolean;
constructor() {
checked = true;
}
}
parent-component-2.ts
:
public class Parent2Component {
public checked: boolean;
constructor() {
checked = false;
}
}
如果它们是同一个组件,您需要执行如下操作:
parent-component.ts
:
public class ParentComponent {
@Input()
checked: boolean;
}
HTML:
<parent-component [checked]="true"></parent-component><!-- First -->
<parent-component [checked]="false"></parent-component><!-- Second -->
我有以下情况:child组件是一个 angular material 滑动开关,用于我的应用程序的不同部分。它用于 parentComponent1 和 parentComponent2。在 parentComponent1 中,我想将滑动切换的默认值设置为 true
,但在 parentComponent2 中,我希望将其设置为 false
。如何在 parent 组件中设置滑动开关的默认值?
我尝试了 angular 文档 (https://angular.io/guide/component-interaction#pass-data-from-parent-to-child-with-input-binding) 中概述的常用 @Input 方法,但没有成功。
我的 child 组件的片段:
<mat-slide-toggle *ngIf="toggleFilterText"
class="example-margin"
[color]="color"
[(ngModel)]="checked"
[disabled]="disabled"
(change)="onToggleFilterChange(checked)">
{{toggleFilterText}}
和child ts
@Input()
checked: boolean;
如何在我的 parent ts 文件中设置默认值?谢谢。
我假设您需要设置 'checked' 的值。将输入参数添加到您的 HTML 标签并将其设置为所需的值
<mat-slide-toggle *ngIf="toggleFilterText"
[checked] = "false"
class="example-margin"
[color]="color"
[(ngModel)]="checked"
[disabled]="disabled"
(change)="onToggleFilterChange(checked)" / >
这取决于您的父组件的设置方式以及它们是否是同一组件。
如果它们是不同的组件:
parent-component-1.ts
:
public class Parent1Component {
public checked: boolean;
constructor() {
checked = true;
}
}
parent-component-2.ts
:
public class Parent2Component {
public checked: boolean;
constructor() {
checked = false;
}
}
如果它们是同一个组件,您需要执行如下操作:
parent-component.ts
:
public class ParentComponent {
@Input()
checked: boolean;
}
HTML:
<parent-component [checked]="true"></parent-component><!-- First -->
<parent-component [checked]="false"></parent-component><!-- Second -->