我正在尝试创建一个家庭日历样式的应用程序,该应用程序有一个表格,其中人名作为列,日期作为行。不知道如何做到这一点,但这是我到目前为止所拥有的:
日历表.html
<polymer-element name="calendar-table">
<template>
<table>
<tr template repeat="{{dates}}">
<td template repeat="{{people}}">{{name}}</td>
</tr>
</table>
</template>
<script type="application/dart" src="calendartable.dart"></script>
</polymer-element>
日历表.dart
import 'package:polymer/polymer.dart';
class Person
{
String name;
Person(this.name);
}
@CustomTag('calendar-table')
class CalendarTable extends PolymerElement {
List people = [new Person("Kalle"), new Person("Olle")];
List dates = [new DateTime(2013, 09, 09), new DateTime(2013, 09, 10)];
}
关于上面的一些问题:
- 上面的代码不起作用,“Uncaught Error: EvalException: variable not found: people in 193757919”。这是由于这个错误还是我做错了什么?
- 是否有另一种方法来创建具有动态行和列的表?如果错误影响我的代码,也许有一些解决方法?
- 有没有关于使用“模板”作为属性而不是元素的文档?(刚刚看到其他一些将其用作属性的代码,它似乎可以工作,但找不到任何官方文档)
更新:
我正在寻找的输出是这样的。(一旦我正确渲染了基本布局,我计划在单元格中为“X”添加内容):
+------------+-------+------+
| | Kalle | Olle |
+------------+-------|------+
| 2013-09-09 | X | X |
+------------+-------+------+
| 2013-09-10 | X | X |
+------------+-------+------+
更新:
这就是我最终得到的结果(感谢 ianmjones 为我指明了正确的方向!):
日历表.html
<polymer-element name="calendar-table">
<template>
<table>
<tr>
<td></td>
<template repeat="{{person in people}}">
<td>{{person.name}}</td>
</template>
</tr>
<template repeat="{{date in dates}}">
<tr>
<td>{{date.toString()}}</td>
<template repeat="{{person in people}}">
<td>X</td>
</template>
</tr>
</template>
</table>
</template>
<script type="application/dart" src="calendartable.dart"></script>
</polymer-element>