从“@angular”而不是“angular2”导入 *
Posted
技术标签:
【中文标题】从“@angular”而不是“angular2”导入 *【英文标题】:import * from "@angular" instead of "angular2"从“@angular”而不是“angular2”导入 * 【发布时间】:2016-09-05 08:10:31 【问题描述】:我在 angular2 中有点困惑。许多例子显示像
import Component from "@angular/core"
但实际上在node_module
中存在angular2
目录。所以逻辑上应该是
import Component from "angular2/core"
这两者有什么区别?
【问题讨论】:
Angular 应用程序是模块化的。它们由许多文件组成,每个文件都有一个用途。 Angular 本身是模块化的。它是一个库模块的集合,每个模块由几个相关的特性组成,我们将使用它们来构建我们的应用程序。当我们需要模块中的某些东西时,我们将其导入。这里我们从 @angular/core 导入 Angular 组件装饰器函数,因为我们需要它来定义我们的组件。 app/app.component.ts (import) import Component from '@angular/core'; @mayur,我想你可能误解了这个问题。 OP 没有询问使用什么或为什么使用导入功能,而是询问"@"
符号的使用。 Gunter的以下答案解释了这一点。查看他们发布的链接中的更改日志。
【参考方案1】:
这是从 beta.17 到 rc.0 的更新引入的更改
https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc0-2016-05-02
【讨论】:
知道为什么要切换吗? @RyanRahlf AFAIK NPM 上的命名空间有名称限制,@
就是其中之一。他们也不希望为不同的 Angular 版本使用不同的命名空间,只为所有 Angular 提供一个命名空间。
如果您在 r.c. 项目中使用低于 beta.17 的模块会怎样?那你用什么语法呢?
什么 beta 17 模块?我敢肯定,如果版本不同,Angular2 模块将无法协同工作。或许运气好的话,如果它们的版本只有一点点不同,你就可以做一些事情,但总是有太多的变化,这是不太可能的。
@GünterZöchbauer。如果我只导入import Component from '@angular/core'
这样的一个组件而不是import * from '@angular/core'
,会不会影响代码的有效性,而不是乍一看?以上是关于从“@angular”而不是“angular2”导入 *的主要内容,如果未能解决你的问题,请参考以下文章
如何从 src/images 文件夹而不是 angular 2 中的 assets 文件夹加载图像
为啥我应该在构造函数而不是 ngOnInit 中创建我的 Angular2 响应式表单?
如何使用带有表单数据主体而不是 json 主体的 http 'POST'? (Angular2/打字稿)