【发布时间】:2020-10-24 12:57:01
【问题描述】:
我从 API 获取 Json 对象并尝试显示它,但我不能 这是我的组件:
selector: 'app-links-page-detail',
templateUrl: './links-page-detail.component.html',
styleUrls: ['./links-page-detail.component.scss']
})
export class LinksPageDetailComponent implements OnInit {
public link: Observable<Links[]>;
public updatedLink: Observable<Links[]>;
public linkName: string;
showSpinner: boolean = true;
disallowEdit: boolean = true;
constructor(private _linksService: LinksService,private route: ActivatedRoute, private router: Router) { }
ngOnInit(): void {
this.route.paramMap.subscribe((params: ParamMap) => {
let name = params.get('name');
this.linkName = name;
});
this.link = this._linksService.getLinkDetail(this.linkName);
this.link.subscribe(() => this.showSpinner = false);
}
这是我的 html 模板:
<label for="ID" class="labels">ID</label><br>
<input type="text" class="inputs" id="ID" [readOnly]="true" name="id" value="{{link.resp._id}}"><br>
<label for="createdOn" class="labels">Created On</label><br>
<input type="text" class="inputs" id="createdOn" [readOnly]="true" name="createdOn" value="{{link.createdOn}}"><br>
<label for="createdBy" class="labels">Created By</label><br>
<input type="text" class="inputs" id="createdBy" [readOnly]="true" name="createdOn" value="{{link.createdBy}}"><br>
<label for="updateOn" class="labels">Update On</label><br>
<input type="text" class="inputs" id="updateOn" [readOnly]="true" name="createdBy" value="{{link.updateOn}}"><br>
<label for="updateBy" class="labels">Update By</label><br>
<input type="text" class="inputs" id="updateBy" [readOnly]="true" name="updateBy" value="{{link.updateBy}}"><br>
<label for="name" class="labels">Name</label><br>
<input type="text" class="inputs" id="name" [readOnly]="true" name="name" [ngModel]="link.name"><br>
<label for="link" class="labels">Link</label><br>
<input type="text" class="inputs" id="link" [readOnly]="disallowEdit" name="link" [ngModel]="link.link"><br>
<label for="username" class="labels">Username</label><br>
<input type="text" class="inputs" id="username" [readOnly]="disallowEdit" name="username" [ngModel]="link.username"><br>
<label for="password" class="labels">Password</label><br>
<input type="text" class="inputs" id="password" [readOnly]="disallowEdit" name="password" [ngModel]="link.password"><br>
<label for="integrationType" class="labels">Integration Type</label><br>
<select class="inputs" id="integrationType" name="integrationType" [ngModel]="link.integrationType" *ngIf="!disallowEdit">
<option value="REST">REST</option>
<option value="SOAP">SOAP</option>
<option value="MYSQL">MYSQL</option>
</select>
<input type="text" class="inputs" id="integrationType" [readOnly]="disallowEdit" name="integrationType" [ngModel]="link.integrationType" *ngIf="disallowEdit"><br>
<label for="method" class="labels">Method</label><br>
<input type="text" class="inputs" id="method" [readOnly]="disallowEdit" name="method" [ngModel]="link.method"><br>
<label for="requestBody" class="labels">Request Body</label><br>
<input type="text" class="inputs" id="requestBody" [readOnly]="disallowEdit" name="requestBody" [ngModel]="link.requestBody"><br>
<input type="reset" value="Cancel" class="inputButtons" [hidden]="disallowEdit" (click)="disAllowEditing()">
<input type="submit" value="Save" class="inputButtons" [hidden]="disallowEdit">
</form>
我知道 ngFor 只接受数组,所以我尝试这样做:
this.route.paramMap.subscribe((params: ParamMap) => {
let name = params.get('name');
this.linkName = name;
});
this.link = this._linksService.getLinkDetail(this.linkName);
this.link.subscribe(() => this.showSpinner = false);
this.link = [this.link];
}
但我收到此错误:类型“Observable
【问题讨论】:
-
我没有看到任何“数据”变量。您将 api 结果存储在什么变量中?
标签: angular