AngularJS自定义指令和webcomponents是否相同?

时间:2015-05-20 05:28:23

标签: javascript angularjs polymer web-component

我已经在angularJS上工作了一段时间并且能够在一定程度上理解,现在我想知道新兴的web组件(http://webcomponents.org/)让我们说聚合物(https://www.polymer-project.org/0.5/),X-tags( http://www.x-tags.org/)或许多其他类似于AngularJS指令行为。

前:

myapp = angular.module("myapp", []);

myapp.directive('element', function() {
    var directive = {};

    directive.restrict = 'E'; /* restrict this directive to elements */

    directive.template = "My first directive: {{textToInsert}}";

    return directive;
});

在HTML中

<element></element>

现在是Polymer例子

HTML:

<element></paper-tabs>

JS:

<script>
  var tabs = document.querySelector('element');

  tabs.addEventListener('core-select', function() {
    console.log("Selected: " + tabs.selected);
  });
</script>

我的问题是:如果我的理解是正确的(Angular Directives与聚合物类似),如果是这样的话,当我选择AngularJS作为创建应用程序的核心框架时,我的应用程序中没有必要使用webcomponents。

1 个答案:

答案 0 :(得分:0)

Angular Directives和Web-Components NOT 相同。

当Angular在浏览器中加载页面时,所有Angular Directive都会编译为常规HTML。

Web Components是使用ShadowDOM的实际自定义元素,以及Angular一无所知的其他几个规范。

Polymer是Sugar-coats Web-Components API的库。

这两种技术都满足了相同的需求,并且可以选择使用其中一种框架。