我有这样的表格:
buildscript {
ext.kotlin_version = '1.2.70'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha11'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin'
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
task customClean(type: Delete) {
delete rootProject.buildDir
}
clean.dependsOn customClean
repositories {
mavenCentral()
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
该表单是通过API填充的:
this.filterFormGroup= this.formBuilder.group({
gmt_scope: [''],
priority: [''],
region: [''],
category: [''],
status: [''],
original_deadline: [''],
responsibles: [''],
pms: [''],
updated_at: ['']
});
准备好后,我阅读了一些queryParams并设置了如下形式的字段:
<form [formGroup]="filterFormGroup" >
<div fxLayout="row" fxLayoutWrap="wrap" fxLayout="center center" class="row">
<div fxFlex.gt-sm="20" fxFlex="100" class="p-10" fxLayoutAlign="center center">
<!-- <mat-slide-toggle color="primary" stepper="0" formControlName="gmt_scope">GMT SCOPE</mat-slide-toggle> -->
<mat-form-field>
<mat-select placeholder="GMT Scope" stepper="0" formControlName="gmt_scope" >
<mat-option *ngFor="let gmt_scope of gmt_scopes" [value]="gmt_scope.value" >
{{ gmt_scope.viewValue }}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxFlex.gt-sm="20" fxFlex="100" class="p-10" fxLayoutAlign="start center">
<mat-form-field>
<mat-select placeholder="Priority" stepper="0" formControlName="priority">
<mat-option *ngFor="let priority of projectAttributes.priorities" [value]="priority.id" >
{{ priority.description }}
</mat-option>
</mat-select>
</mat-form-field>
</div>
如果我检查控制值是否正确更新,但是从用户界面中看不到选定的选项,则未选择它们。
答案 0 :(得分:0)
正如您所说,您的GUI不会更新值,但变量中的控制值会更新。此问题与更改检测有关。
做一件事,即在组件级别上注入ChangeDetectorRef
服务
在组件的构造函数中定义private ChangeDetectorRef cd
。
以及您在自定义事件函数中以编程方式更新控件的位置,请像cd.detectChanges()
这样调用此函数。
遵循此link会有所帮助。