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

时间:2014-01-15 09:23:17

标签: dart dart-polymer angular-dart

我想用飞镖创建一个测验。复选框,单选按钮,下拉菜单,输入字段,......

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

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

2 个答案:

答案 0 :(得分:6)

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

Polymer实际上并不是一个完整的应用程序框架,因为它是一个用于创建W3C自定义元素1的框架。它依赖于新的,即将到来的,有希望的标准,如Shadow DOM,Object.observe,Mutation Observers,Scoped CSS,元素,Template Binding,Node.bind(),Custom Elements和HTML Imports,基本上可以更容易地将它们一起使用创建自定义元素。实际上你根本不需要使用Polymer来创建自定义元素,这将更加繁琐。 Polymer 项目还为这些标准建立了polyfill,因此有时候会分辨哪些部分是实际的“聚合物”部分。在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仍然是实现元素的一种不错的方式。 / p>

SOURCE

答案 1 :(得分:2)

我使用Polymer(https://github.com/ErikGrimes/polymer_elementshttps://github.com/ErikGrimes/polymer_ui_elements)进行了大量工作,并开发了基于Polymer的webapp。 我喜欢用组件构建应用程序。

最近我沉浸在AngularDart中。 Angular也允许创建组件。

在目前的状态下,我会说我发现Angular更轻巧。 并非所有东西都必须是一个组件,还有更多的轻量级构造(direcitve,controller) 分层范围很容易连接所有内容。

我还没有做更高级的事情(就像我已经用Polymer做的那样)来了解Angular的局限性,并且能够做一个公平的比较。

两者都有一些故障和限制,仍然是1.0之前 但两者都已经允许构建高级应用程序 正如@Nidzaaa所说,它们可以组合使用。