加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 17:56:47 所属栏目:安全 来源:网络整理
导读:我正在发现Angular2,我在互联网上找到了一个快速启动项目,以了解结构.我有另外三个文件夹:组件,服务和模型. 我理解什么是组件,因为我理解服务是单身,我想要保留我的数据. 问题是我在services文件夹中有这个文件: import {Injectable} from "@angular/core"
我正在发现Angular2,我在互联网上找到了一个快速启动项目,以了解结构.我有另外三个文件夹:组件,服务和模型.
我理解什么是组件,因为我理解服务是单身,我想要保留我的数据.

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

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

@Injectable()
export class TaskService {

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

    getTasks():Array<Task> {
        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实例而不是单例吗?如果没有,编译器如何知道它何时是服务以及何时是模型?因为后缀?

谢谢.

解决方法

@Injectable is the answer

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读