我有一个plnk来演示我的问题:http://plnkr.co/edit/bXINbDBIMb0LbLitHGbl。
有一个任务列表,每个任务可以包含一个任务列表。任务只能是顶级或具有单个父级,而任务不能包含自身。
当我使用foreach绑定时,任务被“保存”到正确的任务并按预期工作。 (除了footable功能之外)(保存在引号中,因为除了被推送到可观察数组之外,任务实际上没有被保存。)
根据这个答案:https://stackoverflow.com/a/20811414/2033294我创建了一个自定义的Footable绑定。绑定工作完全按照我的意愿工作,直到我尝试使用嵌套的任务。
要查看我想要的行为,请按“添加任务”,按“确定”,单击刚刚创建的任务,然后添加另一个任务或子任务。按“确定”,再次单击“任务”,看到子任务按预期保存。
要查看问题,请更改
<tbody data-bind="foreach: items, delegatedHandler: 'click'">
到
<tbody data-bind="footable: items, delegatedHandler: 'click'">
重复上述步骤。你会发现子任务没有像你期望的那样“保存”。如果按“应用”然后添加一个子任务,它将显示有效,直到您将“确定”回到主列表,然后再次查看任务。你会发现子任务并没有真正推送到正确的数组。
编辑:我已将问题缩小到触发footable_redraw的位置。当我禁用它时,数据显示为预期。 footable不会重绘,但至少知道我知道问题不是基础数据或视图模型。
编辑:我已在footable.js中找到了此代码的问题:(第615行)
if (data.hide[breakpointName] === false) $column.show();
else $column.hide();
因此,由于某种原因,列被设置为隐藏,我只是不确定如何设置它们以便它们不被隐藏。
编辑:我发现如果我这样做:(在footableBinding.js中)
footable.reset();
footable.init();
不管:
footable.redraw();
这给出了我期望的行为,但这似乎不是解决问题的正确方法。
答案 0 :(得分:0)
对我来说同样的问题,只是在一张简单的桌子上。
如果我没有<ht>
属性“数据隐藏”到“平板电脑”或“手机”,我的表格就会隐藏。
只需要将一个<ht>
与数据隐藏放在一起,我的表就可见了。
这看起来像个错误。