为什么MatDialog丢失了方法内部的注入服务?

时间:2018-11-13 20:42:05

标签: angular typescript angular-material angular-material-6

我在对话框页面上具有选择自动完成功能,并且第一步用户选择值。
根据此选择结果,我应该创建不同的输入束。

当用户填写此select-autocomplete时,我应该转到具有服务的后端,以接收有关应在对话框中创建的输入束的数据。
但是自动完成填充后,服务注入会丢失。
getProp方法中,dictionaryServiceundefined

如何通过dictionaryService方法将PropertiesDialogComponent绑定到getProps以访问服务?

export class PropertiesDialogComponent implements OnInit {

  constructor(public dialogRef: MatDialogRef<PropertiesComponent>,
              public dictionaryService: DictionaryRequestService,
              @Inject(MAT_DIALOG_DATA) public data: any) {
    // in this moment dictionaryService is ok.
  }

  getProps(searchValue: string): Observable<EntityIdTitle[]>  {
    debugger
    return this.getSearch(searchValue)
      .pipe(
        map((dicts: DictionaryItemsSearch[]) => 
            dicts.map(i => ({id: i.id, title: i.title})))
      );
  }
}

<h2 matDialogTitle class="mb-3">Add</h2>
<div matDialogContent>
  <form>
    <div class="form-container">
      <app-select-autocomplete
        [multiple]="false"
        [placeholder]="'property'"
        [getOptions]="getProps">
      </app-select-autocomplete>
      </div>
    </div>
    // Create more inputs depend on app-select-autocompleteresult
  </form>
</div>

PS app-select-autocomplete是黑匣子,它的庞大组成部分我不知道这项工作,他可以​​在具有相同参数的其他地方正常工作。

0 个答案:

没有答案