用聚合物或角度创建测验?

Ger*_*ero 2 dart dart-polymer angular-dart

我想用飞镖创建一个测验.复选框,radiobuttons,dropdownmenu,inputfields,...

此外,我想从数据库加载测验,将其显示在网站上,并将特定用户的结果存储到数据库中.Redis或mysql.

对我来说最大的问题是:我应该使用polymer.dart还是angular.dart?两者都有可能做到这一点,但什么是明显的选择?

Hoh*_*Hoh 6

Polymer和Angular可能看起来非常相似,因为它们都具有模板和数据绑定,但它们实际上是完全不同的.

Polymer实际上并不是一个完整的应用程序框架,因为它是一个用于创建W3C Custom Elements 1的框架.它依赖于新的,即将到来的,有希望的标准,如Shadow DOM,Object.observe,Mutation Observers,Scoped CSS,元素,Template Binding,Node.bind(),Custom Elements和HTML Imports,基本上可以更容易地将它们一起使用创建自定义元素.实际上你根本不需要使用Polymer来创建自定义元素,这将更加繁琐.聚合物项目还为这些标准制造了填充物,因此有时候很难分辨哪些部分是实际的"聚合物"部分.在Dart-land中,它只是聚合物包中的东西,主要是Polymer类,其他一切都在包中,例如observe,template_binding,或者已经集成到dart:html中,就像Shadow DOM一样.

在Polymer中实现自定义元素后,元素的用户根本不需要了解Polymer,这是一个实现细节.他们可能需要了解自定义元素升级或Node.bind(),而不是Polymer.事实上,Polymer专注于元素,没有"聚合物应用程序"这样的东西,只有一个由自定义元素构建的应用程序,恰好用Polymer实现,但它们可以很容易用Mozilla的X-Tags库实现[2]

Angular肯定是更全功能的,我称之为"应用程序框架",而不是自定义元素框架.它提供了指令(节点的mixin行为),依赖注入,各种服务,如http和路由,并且具有渗透应用程序的整个可变继承范围的想法,并且具有全局状态,以及我可能遗漏的其他内容.Angular目前不会帮助您构建自定义元素,而是创建在Angular应用程序中工作的Angular组件.

Angular应用程序可以使用Polymer元素,因为Polymer元素只是元素.数据绑定的一种方式应该[3]正常工作,而双向数据绑定需要一个自定义指令(使用Object.observe或Node.bind来监听属性更改),或者Angular添加对Node的支持. bind(),它允许Angular一般双向绑定到任何元素,从s到Polymer元素,再到X-Tag元素.

最后,我认为两者之间没有一个公平的苹果到苹果的比较,并且表面上可能出现的重叠程度较小,因为人们似乎高估了聚合物的大小或者如何低估了Angular有多大,或者他们可能没有意识到哲学上的差异.我完全期望在未来出现更多类似Angular的框架,这些框架构建在自定义元素之上,与Polymer相比,它更能与Angular相比,而Polymer仍然是实现元素的一种不错的方式.

资源