热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular4:InvalidPipeArgument:管道'AsyncPipe'的'[objectObject]'

如何解决《Angular4:InvalidPipeArgument:管道'AsyncPipe'的'[objectObject]'》经验,为你挑选了4个好方法。

我需要你的帮助,我正试图从我的火力显示器中显示一些数据,但它却给我一个错误InvalidPipeArgument: '[object Object]' for pipe 'AsyncPipe'.


有我的服务:

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';

@Injectable()
export class MoviesService {

  constructor(private db: AngularFireDatabase) {}
  get = () => this.db.list('/movies');
}

有我的组件:

import { Component, OnInit } from '@angular/core';
import { MoviesService } from './movies.service';

@Component({
  selector: 'app-movies',
  templateUrl: './movies.component.html',
  styleUrls: ['./movies.component.css']
})
export class MoviesComponent implements OnInit {
  movies: any[];

  constructor(private moviesDb: MoviesService) { }

  ngOnInit() {
    this.moviesDb.get().subscribe((snaps) => {
      snaps.forEach((snap) => {
        this.movies = snap;
        console.log(this.movies);
      });
   });
 }
}

有一个嗯哈巴狗:

ul
  li(*ngFor='let movie of (movies | async)')
    | {{ movie.title | async }}

Adnan A... 23

async用于绑定到Observables和Promises,但似乎你绑定到常规对象.你可以删除这两个async关键字,它应该可以工作.



1> Adnan A...:

async用于绑定到Observables和Promises,但似乎你绑定到常规对象.你可以删除这两个async关键字,它应该可以工作.



2> Nizam Uddin..:

在您的MoviesService中,您应该导入FirebaseListObservable以定义返回类型 FirebaseListObservable

import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';

然后get()方法应该像这样 -

get (): FirebaseListObservable{
        return this.db.list('/movies');
    }

这个get()方法将返回FirebaseListObervable的电影列表

在您的MoviesComponent中应该如下所示

export class MoviesComponent implements OnInit {
  movies: any[];

  constructor(private moviesDb: MoviesService) { }

  ngOnInit() {
    this.moviesDb.get().subscribe((snaps) => {
       this.movies = snaps;
   });
 }
}

然后你可以很容易地迭代电影没有异步管道因为mivies []数据不是可观察的类型,你的html应该是这样的,你的html应该是这个

ul
  li(*ngFor='let movie of movies')
    {{ movie.title }}

如果你把电影视为一部分

movies: FirebaseListObservable;

那么你应该简单地打电话

movies: FirebaseListObservable;
ngOnInit() {
    this.movies = this.moviesDb.get();
}

你的HTML应该是这个

ul
  li(*ngFor='let movie of movies | async')
    {{ movie.title }}



3> JGFMK..:

当您在模板中使用async时,会收到此消息,但是指的是不是Observable的对象.

所以为了举个例子,让我们说我在班上有这些属性:

job:Job
job$:Observable

然后在我的模板中,我这样称道:

{{job | async }}

代替:

{{job$ | async }}

如果使用异步管道,则不需要作业:作业属性,但它用于说明错误的原因.


我比接受的答案更喜欢这个答案,因为它从一般的角度清楚地解释了这个问题.

4> Sanjeet kuma..:

我找到了另一种获取数据的解决方案。根据文档,请检查文档 链接

在服务文件中添加以下内容。

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';

@Injectable()
export class MoviesService {

  constructor(private db: AngularFireDatabase) {}
  getMovies() {
    this.db.list('/movies').valueChanges();
  }
}

在组件中添加以下内容。

import { Component, OnInit } from '@angular/core';
import { MoviesService } from './movies.service';

@Component({
  selector: 'app-movies',
  templateUrl: './movies.component.html',
  styleUrls: ['./movies.component.css']
})
export class MoviesComponent implements OnInit {
  movies$;

  constructor(private moviesDb: MoviesService) { 
   this.movies$ = moviesDb.getMovies();
 }

在您的html文件中添加以下内容。

  • {{ m.name }}

  • 推荐阅读
    • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
    • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
    • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
    • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
    • node.jsrequire和ES6导入导出的区别原 ... [详细]
    • Vue3中setup函数的参数props和context配置详解
      本文详细介绍了Vue3中setup函数的参数props和context的配置方法,包括props的接收和配置声明,以及未通过props进行接收配置时的输出值。同时还介绍了父组件传递给子组件的值和模板的相关内容。阅读本文后,读者将对Vue3中setup函数的参数props和context的配置有更深入的理解。 ... [详细]
    • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
      本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
    • Webpack5内置处理图片资源的配置方法
      本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
    • Java学习笔记之面向对象编程(OOP)
      本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
    • Linux如何安装Mongodb的详细步骤和注意事项
      本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
    • r2dbc配置多数据源
      R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
    • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
    • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
    • VueCLI多页分目录打包的步骤记录
      本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
    • 如何用JNI技术调用Java接口以及提高Java性能的详解
      本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
    author-avatar
    wangyongjieyexuying677
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有