您好我正在构建一个toDo应用程序,我在完成所有步骤后遇到了这个问题。
误差--- 运行时错误 无法解析TaskListPage的所有参数:([object Object],?)。 堆
import { Component } from '@angular/core';
import { NavController, ItemSliding } from 'ionic-angular';
import {Task} from './task';
import {AngularFire, FirebaseListObservable} from 'angularfire2';
@Component({
selector: 'page-tasklist',
templateUrl: 'tasklist.html'
} )
export class TaskListPage {
tasks: FirebaseListObservable <any[]>;
constructor(public navCtrl: NavController, af: AngularFire) {
this.tasks = af.database.list('/tasks');
}
addItem() {let theNewTask: string = prompt("New Task");
if (theNewTask !== '')
{ this.tasks.push({ title: theNewTask, status: 'open'});
}
}
markAsDone( slidingItem: ItemSliding, task: Task)
{ this.tasks.update(task.$key, {status: 'done'});
slidingItem.close();
}
removeTask(slidingItem: ItemSliding, task: Task)
{ this.tasks.remove(task.$key);
slidingItem.close();
}
}
答案 0 :(得分:1)
这是Angular可以真正改善其错误消息传递的地方。违规行是这一行:
constructor(public navCtrl: NavController, af: AngularFire) {
af
变量上没有访问修饰符,因此假设它是一个调用时变量(无public
,protected
或private
,因此Angular不知道它应该是一个类成员变量)。从编译时开始,af
将是未知的,它会导致该警告。
简单的解决方案是:在变量上添加访问修饰符。如果不打算共享,private
通常是适当的修饰符。
此外,AngularFire
看起来不像angularfire2
的有效导出。它看起来应该是AngularFirestore
或其中一个功能特定的模块 - 身份验证,消息传递等。另外请确保您已在app.module中设置了AngularFireModule,following the setup directions in their repo.