Javascript 高分子元素与角方向

Javascript 高分子元素与角方向,javascript,angularjs,polymer,Javascript,Angularjs,Polymer,我知道以前有人问过这个问题,最明显的是 然而,答案在我看来相当抽象,我发现自己在实践中相当困惑 答案似乎是: 聚合物(更准确地说,是阴影DOM)可以创建 只编写HTML的一部分,但也要封装它们。这是一个 全新的功能,可与任何其他功能一起使用 模板化系统或框架以增强其能力 这并没有告诉我太多,据我所知,角度指令在实践中做的几乎是相同的事情,尽管聚合物元件在性能方面可能更有效。我确信“封装”在这里有某种更深层次的含义,我不理解 假设我正在开发一个AngularJS web应用程序。何时、如何以及为什

我知道以前有人问过这个问题,最明显的是

然而,答案在我看来相当抽象,我发现自己在实践中相当困惑

答案似乎是:

聚合物(更准确地说,是阴影DOM)可以创建 只编写HTML的一部分,但也要封装它们。这是一个 全新的功能,可与任何其他功能一起使用 模板化系统或框架以增强其能力

这并没有告诉我太多,据我所知,角度指令在实践中做的几乎是相同的事情,尽管聚合物元件在性能方面可能更有效。我确信“封装”在这里有某种更深层次的含义,我不理解

假设我正在开发一个AngularJS web应用程序。何时、如何以及为什么要在角指令上使用聚合物元素


聚合物元素是否会被使用而不是角度指令,如果是这样的话,什么时候会使用一种而不是另一种?或者,角度指令是否会在聚合物元素方面实施?

你真的在问两个不同的问题,“实施/构建组件与使用组件有什么区别?”

消费组件 在可预见的将来,您可以同时使用这两种方法。构建web组件时使用的技术/库或供应商制造的技术/库并不重要。只需
bower安装
(或类似)并使用对您的应用程序有意义的组件

重要的是,一切都将是DOM,这意味着元素将无缝地协同工作。互操作的故事很棒。这是绑定到聚合物元素的角度指令数据的POC:


建筑构件 建筑元素目前是另一回事。Polymer的方法是以web组件的所有内容为中心。Angular是在web组件出现之前构建的,所以情况有点不同

  • 角度指令是构建自定义标记/组件的一种方法。聚合物和定制元素规范是基于标准的方法

  • 如何构建聚合元素是非常具有声明性的。角度指令主要在JS中定义(能够引用模板文件)

  • 因为聚合元素使用自定义元素,所以继承很简单。我不太清楚遗产的故事/

  • 聚合物元素使用阴影DOM。这给了他们DOM和CSS的封装。您在元素中定义的样式不会出血,页面样式也不会出血。我可能错了,但Angular指令没有任何样式封装的概念。ShadowDOM规范免费提供给我们的是一个难题

  • 数据绑定的概念是相似的

角度指令是否会以聚合物元素的形式实施

  • 最终,Angular将采用一些不断发展的Web组件标准。所有框架都是如此。刚刚制作的Ember,包括web组件。例如,Angular.dart已经将阴影DOM用于指令

  • 默认情况下,聚合元素(自定义元素)可与其他自定义元素互操作。这是因为他们只是多姆。DOM元素可以很好地协同工作:)


希望这有帮助

总之,使用聚合物自定义元素而不是角度指令来构建组件,使用角度指令只是为了向现有组件添加行为?链接的示例似乎没有提供真正的比较(角度版本有
id
s和
class
es,原因不明。)有没有任何简单的例子说明
聚合物
中的代码比
角度
中的代码短得多?@SvenMalvik链接不起作用。但是从我的电子邮件中可以看到。我不明白,在不同的情况下,如何使用完全不同的组件进行这样的比较。