当前位置:  开发笔记 > 编程语言 > 正文

Angular 2中服务和模型的区别?

如何解决《Angular2中服务和模型的区别?》经验,为你挑选了1个好方法。

我正在发现Angular2,我在互联网上找到了一个快速启动项目,以了解结构.我有另外三个文件夹:组件,服务和模型.我理解什么是组件,因为我理解服务是单身,我想要保留我的数据.

问题是我在services文件夹中有这个文件:

import {Injectable} from "@angular/core";
import {Task} from "../models/task";

@Injectable()
export class TaskService {

    private tasks:Array = [
        new Task("Task 1", false),
        new Task("Task 2", false),
        new Task("Task 3", false),
    ];

    getTasks():Array {
        return this.tasks;
    }

    addTask(name:string) {
        this.tasks.push(new Task(name, false));
    }

}

我有一个里面的模型文件夹:

export class Task {

    constructor(public name:string, public done:boolean) {
    }

    toggleDone() {
        this.done = !this.done;
    }
}

但我不确定为什么Task被视为模型而TaskService被视为服务.是因为我可以拥有多个任务实例吗?如果是这样,那么我可以有多个TaskService实例而不是单例吗?如果没有,编译器如何知道它何时是服务以及何时是模型?因为后缀?

谢谢.



1> 小智..:

@Injectable 是答案

我们注册了一个注射类,我们不必实例化它!

我们将它注册为应用程序模块中的提供者,将其注册为我们组件中的提供者,并且嘿,你将获得注入,直接魔术,感谢Angular,你的数据boi.

更重要的是,现在我们的组件甚至不需要知道任何有关Task类的信息 - 它已经包含在我们的Injectable服务中.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有