Noob to Angular2。我正在关注whatsapp克隆的教程并遇到了此错误。角度类型'Observable <Message[]>'不可分配为类型'Observable <Message[]>'
类型'Observable'不可分配为键入'Observable'。属性'源'受到保护,但类型'可观察'不是从'可观察'派生的类。
import { Component, OnInit } from '@angular/core';
import { NavParams } from 'ionic-angular';
import { Chat, Message } from "api/models/chatsModel";
import { Messages } from "../../../api/collections/chatsCollection";
import { Observable } from "rxjs";
/*
Generated class for the Messages page.
See http://ionicframework.com/docs/v2/components/#navigation for more info on
Ionic pages and navigation.
*/
@Component({
selector: 'page-messages',
templateUrl: 'messages.html'
})
export class MessagesPage implements OnInit {
selectedChat: Chat;
title: string;
picture: string;
messages: Observable<Message[]>;
constructor(navParams: NavParams) {
this.selectedChat = <Chat>navParams.get('chat');
this.title = this.selectedChat.title;
this.picture = this.selectedChat.picture;
}
ngOnInit() {
let isEven = false;
this.messages = Messages.find({chatId: this.selectedChat._id},
{ sort: {createdAt: 1} }
).map((messages: Message[]) => {
messages.forEach((message: Message) => {
message.ownership = isEven ? 'mine' : 'other';
isEven = !isEven;
});
return messages;
});
}
}
我明白this.messages
不接受的代码之后,因为这是一个不同类型的于预期,但是,我感到很新的,我不太确定如何改变它,使其接受。任何帮助是极大的赞赏。谢谢!
不'“../../../ API /收藏/ chatsCollection”'引用另一个项目?用另一个'node_modules'目录?如果是这样,那就是问题所在,因为两个'rxjs'包不会被视为相同 - 因此类型错误。软件包共享相同的名称是不够的,如果它们驻留在磁盘上的不同位置,则它们是不同的。 – cartant
@cartant在我的根目录中我有一个包含它自己的nodes_modules的api文件夹,该文件夹专用于流星后端。我正在学习本教程http://angular-meteor.com/tutorials/whatsapp2/。我后来在教程中知道,它需要我从位于api/node_modules/rxjs中的rxjs导入流星可观测数据。我会按照教程的其余部分来看看它是否能解决问题,以确认你在说什么我认为。 – RickD