首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在传递到模板Angular8期间未定义的接口

在传递到模板Angular8期间未定义的接口
EN

Stack Overflow用户
提问于 2020-01-08 11:06:51
回答 2查看 136关注 0票数 1

我是Angular8的新手。

我正在开发一个模板,它将一个接口传递给另一个子微模板并显示出来。

主要组件模板:

代码语言:javascript
复制
<evt-bibliography-item *ngFor="let biblCit of biblCits" 
                         biblField="{{ biblCit }}">
</evt-bibliography-item>

biblCits --它只是通过以下方法获得的一系列接口:

代码语言:javascript
复制
// main component ts.
this.bps.getBibliographicCitations().subscribe(response => {
      this.biblCits = response.citations;

到目前为止一切都还好。从子组件读取单个接口时会出现问题,该子组件考虑数组undefined的所有元素。

这是ts文件:

代码语言:javascript
复制
import { Component, Input } from '@angular/core';
import { BibliographicCitation } from 'src/app/services/xml-parsers/bibliography-parser.service';

@Component({
  selector: 'evt-bibliography-item',
  templateUrl: './bibliography-item.component.html',
  styleUrls: ['./bibliography-item.component.scss']
})
export class BibliographyItemComponent {
  @Input() biblField: BibliographicCitation;

  constructor() {
    console.log(this.biblField)         // [Object Object]
    console.log(this.biblField.titles); // undefined
  }
}

子模板:

代码语言:javascript
复制
<p *ngFor="let biblEl of biblField | keyvalue">
  <em class="biblCitation">
    {{ biblEl.value }}
  </em>
</p>

在这些噱头中,我也尝试过ngAfterViewInitsetInterval,但都没有成功。

我不明白为什么元素是没有定义的。

我希望这没什么大不了的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 11:16:44

当将一个对象绑定到一个{{}}时,不应该使用字符串插值( string插值),否则它只会调用对象上的toString()函数,并将其绑定到输入。为此,您应该使用方括号([])。有关更多示例,请查看备忘单

代码语言:javascript
复制
<evt-bibliography-item *ngFor="let biblCit of biblCits" 
                     [biblField]="biblCit">
</evt-bibliography-item>

输入值将在ngOnInit钩子中的组件中可用:

代码语言:javascript
复制
ngOnInit() {
  console.log(this.biblField);
  console.log(this.biblField.titles);
}

ngOnInit是在角初始化了指令的所有数据绑定属性之后调用的生命周期挂钩。

票数 2
EN

Stack Overflow用户

发布于 2020-01-08 11:16:32

我相信在html模板中,您需要方括号和biblField周围没有大括号。试试这个:

代码语言:javascript
复制
<evt-bibliography-item *ngFor="let biblCit of biblCits" 
                         [biblField]="biblCit">
</evt-bibliography-item>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59644487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档