0

我有一个 plnk 可以证明我的问题:http://plnkr.co/edit/bXINbDBIMb0LbLitHGbl

有一个任务列表,每个任务可以包含一个任务列表。任务只能是顶级或具有单亲,并且任务不能包含自身。

当我使用 foreach 绑定时,任务被“保存”到正确的任务并按预期工作。(除了可脚的功能)(保存在引号中,因为任务除了被推送到可观察数组之外并没有真正保存。)

根据这个答案:https : //stackoverflow.com/a/20811414/2033294 我创建了一个自定义的Footable绑定。在我尝试使用嵌套任务之前,绑定完全按照我的意愿工作。

要查看我想要的行为,请按“添加任务”,按“确定”,单击刚刚创建的任务并添加另一个任务或子任务。按“确定”,再次单击任务,看到子任务已按预期保存。

要查看问题,请更改

<tbody data-bind="foreach: items, delegatedHandler: 'click'"> 

<tbody data-bind="footable: items, delegatedHandler: 'click'"> 

重复上述步骤。您会看到子任务没有像您期望的那样“保存”。如果您按下“应用”,然后添加子任务,它会显示为有效,直到您将“确定”推回主列表,然后再次查看任务。您会看到子任务并没有真正推送到正确的数组。

编辑:我已将问题缩小到触发 footable_redraw 的位置。当我禁用它时,数据会按预期显示。脚注不会重绘,但至少知道我知道问题不在于底层数据或视图模型。

编辑:我已经将问题追溯到footable.js中的这段代码:(第615行)

if (data.hide[breakpointName] === false) $column.show();
                else $column.hide();

所以,由于某种原因,这些列被设置为隐藏,我只是不确定如何设置它们以便它们不被隐藏。

编辑:我发现如果我这样做:(在footableBinding.js中)

footable.reset();
footable.init();

代替:

footable.redraw();

这给出了我期望的行为,但这似乎不是解决问题的正确方法。

4

1 回答 1

0

对我来说同样的问题,但只是在一张简单的桌子上。

如果我没有<ht>将“数据隐藏”属性设置为“平板电脑”或“手机”,那么我的表格将被隐藏。

只需放置一个<ht>带有数据隐藏功能的表格,我的表格就可见了。

它看起来像一个错误。

于 2014-01-06T13:44:27.730 回答