ionic3&angular4 遇到未定义的提供者!通常这意味着您有一个循环依赖项



我是ionic&Angular的新人。我编写的代码如下:

task.service.ts:

import { Injectable } from '@angular/core';
import { Task } from '../model/task';
import { Dummy } from '../data/dummy';
@Injectable()
export class Taskservice {
  getAllTaskByUser(uid: String): Task[]{
    console.log('getAllTaskByUser');
    return TASKS;
  }
}

任务.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Task } from '../../model/task'
import { TaskService } from '../../service/task.service'

@IonicPage()
@Component({
  selector: 'page-task',
  templateUrl: 'task.html',
  providers: [TaskService]
})
export class TaskPage {
  searchQuery: string = '';
  taskList: string = "notStarted";
  allTasks: Task[];
  notStartedItems: String[];
  startedItems: String[];
  completedItems: String[];
  tab1: any;
  constructor(public navCtrl: NavController, public navParams: NavParams, private taskService: TaskService) {
    this.getAllItems();
    // tab1 =
  }
  ionViewDidLoad() {
    console.log('ionViewDidLoad TaskPage');
  }
  getAllItems() {
    this.allTasks = this.taskService.getAllTaskByUser('')
  }
  searchItems(ev: any) {
    // set val to the value of the searchbar
    let val = ev.target.value;
    // if the value is an empty string don't filter the items
    if (val && val.trim() != '') {
      this.allTasks = this.allTasks.filter((item) => {
        return (item.name.toLowerCase().indexOf(val.toLowerCase()) > -1);
      })
    }
  }
}

任务:

export class task {
  id: String;
  taskname: String;
  state: String;
}

虚拟.ts:

import { Task } from '../model/task';
export const TASKS: Task[] = [{ "id": "1", "taskname": "作业001", "state": "未完成" },
{ "id": "2", "taskname": "作业002", "state": "已完成" },
{ "id": "3", "taskname": "作业003", "state": "未开始" },
{ "id": "4", "taskname": "作业004", "state": "未开始" }];

开始发球后,我收到错误消息"运行时错误遇到未定义的提供程序!通常这意味着您有一个循环依赖项(可能是由使用'barrel'index.ts文件引起的。

有人可以帮忙吗?我很抱歉,如果在发布此内容时出现问题,也是堆栈溢出中的新功能。

你的类TaskService实际上拼写为Taskservice

@Injectable()
export class Taskservice <-- lower case 's'{
  getAllTaskByUser(uid: String): Task[]{
    console.log('getAllTaskByUser');
    return TASKS;
  }
}
@Component({
  selector: 'page-task',
  templateUrl: 'task.html',
  providers: [TaskService] <-- Capital 'S'
})

相关内容

最新更新