当前位置: 首页 > 面试题库 >

Angular2中的工厂相当于什么?

牛凌
2023-03-14
问题内容

因此,我习惯于在Angular中使用工厂和服务。

我正在阅读Angular2文档,但看不到任何等效的工厂。Angular2的等效项是什么?


问题答案:

工厂,服务,常量和值都在Angular2中消失了。Angular2与经典Angular有根本性和根本性的不同。在Angular2中,核心概念是

  • 组件
  • 依赖注入
  • 捆绑

服务,工厂,提供者和常量的概念在Angular 1中受到了批评。很难在两者之间进行选择。删除它们可以简化事情。

在原始的Angular中,您将像这样定义服务

app.service('BookService', ['$http', '$q', BookService]);
function BookService($http, $q){
  var self = this;
  var cachedBooks;
  self.getBooks = function(){
    if (cachedBooks) {
      return $q.when(cachedBooks);
    }
    return $http.get('/books').then(function(response){
      cachedBooks = response.data.books;
      return cachedBooks;
    })
  }
}

Angular2极大地利用了ES6语法,使代码更易读和易于理解。

ES6中的一个新关键字是class,可以将其视为服务。

ES6类是对基于原型的OO模式的简单补充。具有单个方便的声明形式使类模式更易于使用,并鼓励了互操作性。类支持基于原型的继承,超级调用,实例以及静态方法和构造函数。

这是相同的代码在Angular2中的外观

import {HttpService, Promise}  from '../Angular/Angular2';
export class BookService{
    $http, $q, cachedBooks;
    constructor($http: HttpService, $q: Promise) {
        this.$http = $http;
        this.$q = $q
    }
    getBooks() {
    if (this.cachedBooks) {
        return this.$q.when(this.cachedBooks);
    }
    return this.$http.get('/books').then(function(data) {
        this.cachedBooks = data.books;
        return this.cachedBooks;
    })
  }
}


 类似资料:
  • 问题内容: C#中的Java枚举相当于什么? 问题答案: 完整的Java枚举功能在C#中不可用。你可以来 合理地 接近使用嵌套类型和私有构造虽然。例如: 当然你不 具备 使用嵌套类型,但他们给了方便的“自定义的行为”其中一部分的Java枚举是好的。在其他情况下,您可以仅将参数传递给私有构造函数以获取众所周知的受限值集。 一些不能给您的事情: 顺序支持 开关支持 序列化/反序列化(作为单例) 尽管没

  • 问题内容: 什么是Java相当于ManualResetEvent? 问题答案: 我所知道的最接近的是信号量。只需将其“许可”计数为1即可使用,获得/释放将与您从中获得的信息几乎相同。 初始化为一个的信号灯可以用作互斥锁,该信号灯最多只能使用一个许可。这通常被称为二进制信号量,因为它只有两种状态:一个许可可用,或零许可可用。当以这种方式使用时,二进制信号量具有属性(与许多Lock实现不同),该“锁”

  • 问题内容: 在Java中,要声明一个常量,您可以执行以下操作: Kotlin中的等效物是什么? 问题答案: 根据Kotlin 文档,这是等效的: 用法: 这也是静态的final属性(带有getter的字段): 最后这是静态的final字段:

  • 问题内容: 我的任务是为开源应用程序编写身份验证组件。我们有一个使用的内部身份验证小部件。我有一些例子访问的代码,它使用来办理过户。 我的问题是,是否有to 的端口,或者更好的是,什么基本软件包将使我足够接近以处理任务? 更新 : 简而言之,我想在JAVA中复制的代码: 我认为您的目标是正确的,我认为我最终将使用HttpsURLConnection,然后从响应中选择所需的内容。 问题答案: 省略异

  • 问题内容: 我希望使用来自Node.js的HTTP请求中的信息(即调用远程Web服务并将响应回显到客户端)。 在PHP中,我会使用cURL来做到这一点。Node的最佳做法是什么? 问题答案: 有关完整示例,请参见HTTP模块的文档: https://nodejs.org/api/http.html#http_http_request_options_callback

  • 问题内容: 我正在自学python 2.7。我在使用具有GOTO语句的BATCH方面有一些经验。我该如何在python中做到这一点?例如,假设我想从第5行跳到第18行。 我意识到以前有关于此主题的问题,但是我发现它们没有足够的信息,或者对于我目前的理解而言,在python中的水平太高了。 问题答案: s在计算机科学和编程中普遍受到指责,因为它们会导致非常非结构化的代码。 Python(像当今几乎所