2017-10-17 50 views
1

我对离子& angular.Following代码,我写了一个新的:ionic3&angular4遇到undefined provider!通常,这意味着你有一个循环依赖

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; 
    } 
} 

task.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); 
     }) 
    } 
    } 

} 

task.ts:

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

dummy.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": "未开始" }]; 

开始后发球,我得到了错误味精 “运行时错误 遇到不确定的提供商!通常,这意味着你有一个循环依赖(可能通过使用“桶” index.ts文件引起的。”

有人能帮忙吗? 我很抱歉,如果一些错误在计算器张贴这,也是新的。

+0

@Gabriele是正确的。它看起来'TaskService'拼写小姐比赛。如果你仍然得到问题,尝试添加应用程序的''TaskService'到'NgModule'。 module.ts'。 –

回答

2

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' 
}) 
+0

非常感谢。非常低的错过... –

+0

@ Emil.Li如果您将我的答案标记为正确,我会很感激 – Gab