G'day,我对集体dart智慧 - 信任有疑问。我在试图用Dart和Dart-Polymer解决一个神秘的错误时做了一个观察(参见:related)。
我遇到的事情与dart-polymer(和dart-polymer)元素code-reuse有关;在我对上述错误的调查过程中,我创建了两个克隆的dart-polymer元素:
<x-fred>
和<z-fred>
两者都是Stopwatch示例中dart-polymer元素的克隆。
原始的唯一变化是元素名称。
我发生的事情是能够code-reuse一个漂亮的'股票元素',例如stopwatch我最不需要一个独特的 fred < /strong>.html为每个元素code-reuse。
这预先假定我可以组织我的项目,以便维护方便和简单。
真正的问题是开发人员如何做以下事情......?
<z-fred>
是-a 秒表元素(例如)。如果没有,那么需要将这些事情放下来讨论。 code-reuse和[dart:polymer]会发生什么变化?有没有comp.lang.dart? : - )
假设我有一个名为<z-fred>
的Polymer元素。我想继承z-fred元素以生成一个新的( daughter )元素定义:<x-fred>
我该怎么做?
我希望能够做到......
<!DOCTYPE html>
<polymer-element name="x-fred">
<link rel="import" href="elements/zfred/fred.html">
<template>
<style>
:host { /* override zfred defiitions */
background-color: blue;
text-align: center;
display: inline-block;
border: solid 1px;
padding: 10px 10px 10px 10px;
}
</style>
<div>
<x-fred>
<h1>X-Fred: {{counter}} </h1>
<p>Fred X is a count-down timer. Fred Z is a normal stopwatch (count-up).</p>
<override>
<button on-click="{{stop}}" id="stopXFredButton">Stop</button>
</override>
</x-fred>
<div>
<p>this is a count-down timer. Remaining time at end: {{ counter }} </p>
</div>
</div>
</template>
<script type="application/dart" src="xfred.dart"> </script>
</polymer-element>
请参阅?我的例子不起作用,因为这里需要的是XFred.polymer继承自ZFred.polymer。
那就是说,我没有看到将.html加.dart绑定到某个类型的'element 模块中。在我的小方法中,我想通过将每个小部件放在它自己的文件夹中来做到这一点。为了实现这一点(并且会有更好的机制), daughter 需要能够覆盖父Public和Protected属性(非私有)。
我原以为xfred.dart会隐式继承zfred.dart(因为词法上)两个Dart文件都与Polymer元素无关。在这个时刻,有一些产品设计问题需要探讨。选项如:
在真实的用户界面中,我可能希望将各种基本UI元素组合成不同类型的子元素,以构成页面,表单或布局。我认为在概念#1之后,生活仍然不那么混乱。这满足了我的另一个要求,即能够管理同一元素的替代代码隐藏行为。
在一天结束时。我要问的主要问题是框架的一部分是多少,手动黑客的工作量是多少,以确保事情保持快乐? : - )
答案 0 :(得分:1)
您可以继承现有的聚合物元素。
对于讨论,最好的地方是Dart Google群组