无法解析所有参数

时间:2018-03-10 23:08:57

标签: firebase ionic-framework angularfire angularfire2

您好我正在构建一个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();
}


}

1 个答案:

答案 0 :(得分:1)

这是Angular可以真正改善其错误消息传递的地方。违规行是这一行:

constructor(public navCtrl: NavController, af: AngularFire) {

af变量上没有访问修饰符,因此假设它是一个调用时变量(无publicprotectedprivate,因此Angular不知道它应该是一个类成员变量)。从编译时开始,af将是未知的,它会导致该警告。

简单的解决方案是:在变量上添加访问修饰符。如果不打算共享,private通常是适当的修饰符。

此外,AngularFire看起来不像angularfire2的有效导出。它看起来应该是AngularFirestore或其中一个功能特定的模块 - 身份验证,消息传递等。另外请确保您已在app.module中设置了AngularFireModule,following the setup directions in their repo.