源码分析 @angular/cdk 之 Portal

2018-05-30
阅读 15 分钟
4.6k
@angular/material 是 Angular 官方根据 Material Design 设计语言提供的 UI 库,开发人员在开发 UI 库时发现很多 UI 组件有着共同的逻辑,所以他们把这些共同逻辑抽出来单独做一个包 @angular/cdk,这个包与 Material Design 设计语言无关,可以被任何人按照其他设计语言构建其他风格的 UI 库。学习 @angular/material ...

[译] 关于 Angular 动态组件你需要知道的

2018-05-02
阅读 10 分钟
7.5k
如果你之前使用 AngularJS(第一代 Angular 框架)来编程,可能会使用 $compile 服务生成 HTML,并连接到数据模型从而获得双向绑定功能:

[译] Angular 属性绑定更新机制

2018-05-02
阅读 7 分钟
3.7k
所有现代前端框架都是用组件来合成 UI,这样很自然就会产生父子组件层级,这就需要框架提供父子组件通信的机制。同样,Angular 也提供了两种方式来实现父子组件通信:输入输出绑定和共享服务。对于 stateless presentational components 我更喜欢输入输出绑定方式,然而对于 stateful container components 我使用共享服...

[译] 为何 Angular 内部没有发现组件

2018-05-02
阅读 7 分钟
2.6k
从我开始使用 Angular 开始,就被组件和指令间区别的问题所困惑,尤其对那些从 Angular.js 世界来的人,因为 Angular.js 里只有指令,尽管我们也经常把它当做组件来使用。如果你在网上搜这个问题解释,很多都会这么解释(注:为清晰理解,不翻译):

[译] Angular DOM 更新机制

2018-05-02
阅读 7 分钟
4.6k
由模型变化触发的 DOM 更新是所有前端框架的重要功能(注:即保持 model 和 view 的同步),当然 Angular 也不例外。定义一个如下模板表达式:

[译] $digest 在 Angular 中重生

2018-05-02
阅读 7 分钟
2k
我使用 Angular.js 框架好些年了,尽管它饱受批评,但我依然觉得它是个不可思议的框架。我是从这本书 Building your own Angular.js 开始学习的,并且读了框架的大量源码,所以我觉得自己对 Angular.js 内部机制比较了解,并且对创建这个框架的架构思想也比较熟悉。最近我在试图掌握新版 Angular 框架内部架构思想,并与...

[译] 监听 Angular 启动过程

2018-04-02
阅读 3 分钟
2.5k
这个 _loadComponent() 函数会在初始化程序时被调用(译者注:这句可参考 application_ref.ts 中 L245,L281, L463,L492),通过观察这个函数不仅知道一个组件是如何被添加到程序里的(译者注:该方法第三行),还能知道对于每一个启动组件,Angular 都会执行使用 APP_BOOTSTRAP_LISTENER 令牌注册的监听器,并且把该...

[译] 别再对 Angular 表单的 ControlValueAccessor 感到迷惑

2018-04-02
阅读 9 分钟
8.4k
如果你正在做一个复杂项目,必然会需要自定义表单控件,这个控件主要需要实现 ControlValueAccessor 接口(译者注:该接口定义方法可参考 API 文档说明,也可参考 Angular 源码定义)。网上有大量文章描述如何实现这个接口,但很少说到它在 Angular 表单架构里扮演什么角色,如果你不仅仅想知道如何实现,还想知道为什么...

[译] 关于 `ExpressionChangedAfterItHasBeenCheckedError` 错误你所需要知道的事情

2018-03-25
阅读 7 分钟
22.1k
关于 ExpressionChangedAfterItHasBeenCheckedError,还可以参考这篇文章,并且文中有 youtube 视频讲解:Angular Debugging "Expression has changed after it was checked": Simple Explanation (and Fix)

[译] 你真的知道 Angular 单向数据流吗

2018-03-25
阅读 5 分钟
5.2k
关于单向数据流,还可以参考这篇文章,且文中还有 youtube 视频解析:Angular - What is Unidirectional Data Flow? Learn How the Angular Development Mode Works, why it's important to use it and how to Troubleshoot it 。单向数据流一句话解释就是:不要在 Angular 使用 Model 生成 View 这个过程中再去修改 Mod...

[译] 如何手动启动 Angular 程序

2018-03-24
阅读 5 分钟
3.2k
这行代码 platformBrowserDynamic() 是为了构造一个 platform,Angular 官方文档对 platform 的定义是(译者注:为清晰理解,platform 定义不翻译):