【问题标题】:Angular2 create custom Pipes with import problemsAngular2创建带有导入问题的自定义管道
【发布时间】:2016-11-15 02:21:09
【问题描述】:

使用 angular2 RC.1,我们创建了一个自定义管道并导入了一些我们需要创建管道的类。 直到现在我们才迁移到最终的 Angular 版本,我们无法导入任何我们需要的类。

import { isBlank, isString, isArray, StringWrapper, CONST } from 'angular2/src/facade/lang';
import { BaseException } from 'angular2/src/facade/exceptions';
import { ListWrapper } from 'angular2/src/facade/collection';
import { InvalidPipeArgumentException } from 'angular2/src/common/pipes/invalid_pipe_argument_exception';

谁能告诉我们在哪里可以找到这些类,我们找不到它们,在代码中也找不到。那么他们都发生了什么?

【问题讨论】:

    标签: angular import pipe


    【解决方案1】:

    如果我没记错的话,这些都是在 RC6 时间范围内有目的地从公共 API 中重构出来的。如果您浏览 github 上的源代码,您会发现在大多数情况下这些都存在,但不再导出到任何地方。有一个 github issue 可以追溯到 2015 年 4 月,它突出了将这些内部实用程序从公众曝光中移除的想法:

    Facades 用于抽象 JS / Dart 的差异。我们不想 从事提供一般辅助功能的业务,因为有 已经有很多图书馆以通用的方式做到这一点。 外墙是最小的,供内部使用——我们不想增加那些 为了不给框架添加太多字节而通用。

    https://github.com/angular/angular/issues/3886

    您要么需要找到实现所需功能的库,要么自行构建。

    isString,例如是一个简单的typeofCheck if a variable is a string

    isBlank 可以通过检查它是否是一个字符串然后用正则表达式查看它是否为空白来完成。

    异常将源自错误:How do I extend a host object (e.g. Error) in TypeScript,您在其中抛出新错误。

    你问他们发生了什么事,我回答了。

    【讨论】:

    • 好的,但是如果您要创建我们自己的 Pipes,他们怎么能不实现 BaseException 或 InvalidPipeArgumentException,这完全是支持的。
    • 我可以使用简单的 'Array.forEach((record, index) => {});' 而不是 'ListWrapper.forEachWithIndex'没关系 但是应该有一个库可以给我一个isString 函数?你认识某人吗?我怎样才能在管道上抛出异常?在有BaseExceptionInvalidPipeArgumentException之前,应该有还是没有?
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 2016-11-05
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    相关资源
    最近更新 更多