客户端 – Angular JS如何与Google Closure相关?

现在AngularJS 1.0 is released我想知道这个项目如何与来自谷歌,Closure的其他通用JavaScript框架/工具配合在一起。

我只看到了这两种技术的基本描述(并阅读了关于Closure的书的一半),所以我没有直接的经验,但这是它看起来对我来说:

> Closure是一组可以单独使用的技术。我发现可能最有吸引力的是:

> Closure Compiler似乎“修复JavaScript”在某种意义上警告了典型的问题,提供了一些编译时检查(不是所有的人都这样,但可能大多数Google开发人员,我也这样做)。当然,结果代码更小,更高效是很好的。
>然后有我喜欢的Closure库的一些部分,例如。内置类型的抽象(ArrayLike等),基于类的系统,事件机制,DOM抽象等等。我还不确定如果我喜欢GUI库或者不是(似乎是相当复杂,我没有真的有时间学习它)。
>然后有一些功能,我不认为我会发现有用的,例如。模板。

> AngularJS,我只是简单地阅读,似乎是比Closure高得多。它似乎是一个应用程序框架提供的功能,如数据绑定,可重用组件,MVC结构等。

所以这两种技术似乎是针对不同的抽象层次,所以我的第一个想法是,它们可以一起使用吗? Closure提供低级编译器和浏览器抽象,而Angular提供应用程序级服务和结构?它会有意义,它会一起工作吗?

我唯一知道的使用AngularJS的Google项目是DoubleClick小组。 (presentation)本质上,他们仍然使用谷歌Closure库的一切,但UI的建设。还要注意,他们使用Google Closure Compiler,但这几乎是一个给定的,“nobody”只使用库没有编译器。

Google Closure Library在其goog.ui命名空间中提供了一个UI框架。这个框架几乎在所有方面都与非Web UI框架(如Android,iOS,Swing和QT)进行比较。他们有一个东西我喜欢调用DOM元素类固醇,goog.ui.Component,它有很多伟大的生命周期机制垃圾收集和事件监听等等。你有类似于goog.ui.Control的东西,它是goog.ui.Component的子类,并以一种非常有趣的方式处理用户交互。它允许您插入渲染器,例如,您可以更改< button>到< a>而不改变任何其他逻辑,除了实际渲染。

说到类和子类,Google Closure Library也有这个。你不必使用内置的,重要的是你不知何故在你的方法调用“超类”的原型。你可以例如在CoffeeScript中使用类系统,Google Closure Library不在乎。

DoubleClick团队选择AngularJS的原因是apparently,这主要是因为AngularJS提供的数据绑定功能。 Google Closure Library中没有内置内容,可在数据更改时自动更新UI。

所以总而言之,谷歌Closure是一个huuuuge野兽,AngularJS可以取代Google Closure库的goog.ui部分。

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...