- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Angular 的新手,我正在尝试使用按钮显示 API 调用的结果,认为 data.service.ts.Console 显示了这个问题:
AppComponent.html:7 ERROR TypeError: _co.getPosts is not a function at Object.eval [as handleEvent]
请帮忙
应用程序组件.ts
import { Component } from '@angular/core';
import { HttpClient} from '@angular/common/http';
import { Post } from './post';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'API';
}
App.component.html
<div style="text-align:center">
<h1>
{{ title }}!
</h1>
<div>
<button (click)="getPosts()"> Get Posts!</button>
</div>
<div>
<input type='text'(keydown)="search($event)" placeholder='search posts...'>
</div>
<div *ngFor="let post of posts">
<p><b>Title :</b> {{this.posts.title}}</p>
<p><b>Body: </b>{{this.posts.body}}</p>
</div>
<div></div>
</div>
<router-outlet></router-outlet>
数据.服务.ts
import { Injectable } from '@angular/core';
import { Post } from './post';
import { Observable } from 'rxjs';
import { HttpClient} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
readonly ROOT_URL = 'https://jsonplaceholder.typicode.com';
posts: Observable<any[]>;
constructor(private http: HttpClient) {}
getPosts() {
this.posts = this.http.get<Post[]>(this.ROOT_URL + '/posts')
}
}
谢谢!!!
最佳答案
getPosts() 函数是 undefined
因为它没有在 app.component.ts
中定义.相反,它只是在服务中已知,这意味着您必须将其添加到 constructor
像这样然后将方法添加到 app.component.ts
constructor(private dataService: DataService) {}
getPosts() {
this.dataService.getPosts()
}
但是您没有从 DataService
返回任何值所以它将保留在 Observable
中仅在 DataService
中已知.
如果你想显示结果你需要从DataService
返回值
数据服务.ts
getPosts() {
return this.http.get<Post[]>(this.ROOT_URL + '/posts')
}
然后你可以将它保存到app.component.ts
中的某个变量中
getPosts() {
this.posts = this.dataService.getPosts()
}
像这样更新你的html结构
<div *ngFor="let post of posts | async">
<p><b>Title :</b>{{post.title}}</p>
<p><b>Body: </b>{{post.body}}</p>
</div>
顺便说一句search($event)
太叫了一些undefined
功能。
关于angular - AppComponent.html :7 ERROR TypeError: _co. getPosts 不是 Object.eval 的函数 [as handleEvent],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952480/
根据 chrome 分析器 handleEvent 占用了大约 90% 的时间,当我执行 div_el.innerHTML = "html with hundreds of simple div"时。
我来这里之前用谷歌搜索了一下,这可能是一个错误,但我想先征求第二意见,也许我只是写错了代码。 我正在创建一个带有自定义控件的音频播放器。当我点击 PLAY/PAUSE 按钮时,我得到这个错误: 类型错
我正在尝试使用 XML 规则中不允许的字符捕获 ValidationEvent。 (例如,“&”)此外,我还设置了 ValidationEventHandler 来检查解码错误。 我尝试使用 Inpu
我在网上搜索了很长时间...我没有找到问题的答案,所以我决定在这里发帖。我尝试使用 NSStream 建立与 NNTP 服务器的连接。 在测试程序中,我打开流并发送一条消息。委托(delegate)方
本文整理了Java中com.sun.xml.bind.v2.runtime.XMLSerializer.handleEvent()方法的一些代码示例,展示了XMLSerializer.handleEv
用processEvent替换已弃用的函数handleEvent时,我找不到转换代码的方法。有人可以帮忙吗? 如何获取processEvent上的x、y和事件id? 这是我的功能: public bo
我目前正在开发一个使用 Google 可视化 API 创建热图的 JavaScript 应用程序,但出于某种原因,每当我将数据数组添加到热图时,倒数第二个元素总是会抛出此错误: Invalid val
我希望我有一个 react native bridge module 、线程、委托(delegate)或我不理解的生命周期问题阻止接收委托(delegate)方法调用。 我是否需要更改 NSStrea
我正在使用 Anugular 7 和 Angular Material 。我目前在尝试通过 提交表单时遇到错误 (ngsubmit)="changePassword(formData)" 页面上的其他
我是 Angular 的新手,我正在尝试使用按钮显示 API 调用的结果,认为 data.service.ts.Console 显示了这个问题: AppComponent.html:7 ERROR T
请帮我理解handleEvent之间的区别的 Listener接口(interface)与 Event的 Listener接口(interface)。提前致谢。 我遇到过handleEvent使用 E
我是一名优秀的程序员,十分优秀!