couchdb - 在on中对表进行重复,不像自定义筛选数据中预期的那样工作

  显示原文与译文双语对照的内容

以下( 所需) 模板不能按预期的( 每个年份的一个 div,每个月包含一个 table - 一个传统的年计划程序样式日历) 工作:


<div ng-repeat="year in calendar | ToCalendar">
 {{year.name}}
 <table ng-repeat="month in year.children">
 <caption>{{month.name}}</caption>
 <tr>
 <th ng-repeat="d in month.children[1].children track by $index">
 {{d}}
 </th>
 </tr>
 <tr ng-repeat="week in month.children"> 
 <td ng-repeat="d in week.children track by $index">
 {{d.day.format('DD')}}
 </td>
 </tr>
 </table>
</div>

外部div元素在 table ( 至少在 Chrome 中) 之前关闭,因此 table 上的ng重复没有所需的父范围。 所以,所有这些呈现的都是一个。

$scope.calendar 是 moment.js 对象的array 。 定制过滤器"tocalendar"使用创建其他属性( 年。月。日和星期),允许 _.nest() 按年。月和星期嵌套这些属性。 要给出结构的概念,请在模板中执行以下操作:


<pre>{{calendar | ToCalendar | json}}</pre>

结果在下面呈现:


[
 {
"name":"2014",
"children": [
 {
"name":"September",
"children": [
 {
"name":"36",
"children": [
 null,
 {
"year": 2014,
"month":"September",
"week":"36",
"weekday":"1",
"day":"2014-08-31T23:00:00.000Z"//Is in fact a moment() object
 }
. . .

如果我更改所需的模板,以便 table 及它的子元素的div具有 css"显示": 表"等,它呈现为所需。 如果将外部div更改为 span 和 ng-repeat-start ( 和一个空元素后,ng-repeat-end ),但将 table 元素保持为真实的table 元素,它将工作。 这个特技修正假定 table 元素在正确的父作用域内。

看起来筛选器"tocalendar"会导致重复的div早期关闭,但为什么? 为什么内部元素是div或者不区分大小写?


JS: 工作小提琴。 查看评论。

时间: 原作者:

问题显然放在模板的不同部分,因为将它的退回只需要修复的模板。

原作者:
...