当前位置: 首页 > 知识库问答 >
问题:

Angular 6-http.get未启动

罗心思
2023-03-14

我对PrimeNG进行了培训,并创建了一个从json文件中获取数据的服务。https://www.primefaces.org/primeng/#/treetable

ngOnInit() {
  this.nodeService.getFileSystem().then(files => this.files = files);
}
private filesystemUrl = 'http://localhost:4200/assets/data/filesystem.json';  

constructor(private http: HttpClient) { }

getFileSystem() {
  return this.http.get(this.filesystemUrl)
  .toPromise()
  .then(res => <TreeNode[]> res);
}
"assets": [
  "src/favicon.ico",
  "src/assets",
  "src/assets/data"
]

主要奇怪的是,在浏览器的network选项卡中,我没有看到任何试图访问这个json文件的get调用:

localhost   304 document    vendor.js:100488    210 B   304 ms  
runtime.js  304 script  (index) 211 B   4 ms    
polyfills.js    304 script  (index) 212 B   6 ms    
styles.js   304 script  (index) 212 B   7 ms    
vendor.js   304 script  (index) 213 B   17 ms   
main.js 304 script  (index) 212 B   17 ms   
info?t=1539698839604    200 xhr zone.js:2969    367 B   2 ms    
websocket   101 websocket   sockjs.js:1683  0 B Pending 

我尝试了其他方法来编写我的方法,就像IDE中的这个方法:

getFileSystem() {
  return this.http.get(this.filesystemUrl)
  .pipe(map((response: Response) => {
    console.log(response.json());
    return response.json();
  }))
  .subscribe();
}

但是,在调用服务的组件方法中,我没有找到更改“then()”的方法,因为:[ts]属性“then”在类型“subscription”上不存在。

getFileSystem() {
  return this.http.get<TreeNode[]>(this.filesystemUrl);
}

如果有人能帮忙?多谢!

共有1个答案

雍飞雨
2023-03-14

按以下方式创建服务:

    private filesystemUrl = 'http://localhost:4200/assets/data/filesystem.json';  

constructor(private http: HttpClient) { }

getFileSystem(): Observable<TreeNode[]> {
  return this.http.get<TreeNode[]>(this.filesystemUrl);

}

您将返回一个可观察的,并且必须在组件中订阅它:

private treeNode: TreeNode[];
ngOnInit() {
  this.nodeService.getFileSystem().subscribe(data => {
     this.treeNode=data;
     console.log(data);
  });
}
 类似资料:
  • 后台管理系统启动正常,在登录页面点登录就报错(本人是熟悉vue,他这请求库不是axios也不是fetch): 接口单独拿工具(postman或apifox等)测是正常的,也就是后端无问题也不是跨域问题。 初步判断是这个项目包版本的问题。我也不能大改不敢升级最新版,太多包是8年前的了。只能小改,如何改

  • 我曾经用命令构建我的angular 5项目: 我已经将我的项目更新为angular 6,当我调用该命令时,我会得到如下错误: 架构验证失败,出现以下错误:数据路径“”不应具有其他属性 (o)。错误:架构验证失败,出现以下错误:数据路径“”不应具有其他属性 (o)。at MergeMapSubscriber.registry.compile.pipe.operators_1.concatMap.va

  • MEAN Stack Angular 6 CRUD Web Application This source codes if part of MEAN Stack Angular 6 CRUD Web Application tutorial. This project was generated with Angular CLI version 6.0.1. Development server

  • 在整个评估过程中使用JxBrowser,效果非常好。现在,我一启动它就突然不起作用了。我在Mac OS X 10.11上运行,但我也在Windows上测试过,仍然不起作用。我的构建路径中有两个操作系统所需的库。这就是我得到的(在Mac OS X上运行):

  • 我很难在服务器重新引导时重新启动pm2(它本身和两个节点/express文件,&)。 下面是我尝试的过程: 我在所有可能的组合中运行了上面的命令,但没有任何工作。我试着以根用户的身份运行,但也不起作用。 我的文件包含信息,所以我不知道还可以在哪里查找。 我尝试的其他参考资料... http://pm2.keymetrics.io/docs/usage/startup/ https://www.di