将koGrid与Durandal/HotTowel模板集成

Bro*_*ato 9 knockout.js kogrid durandal hottowel

我使用Durandal模板处理asp.net解决方案.

我尝试使用与knockout兼容的koGrid(https://github.com/Knockout-Contrib/KoGrid).在Durandal管理的测试页中插入此网格时,它不起作用:网格似乎在那里但没有正确显示.

我们注意到,如果我们调整窗口大小,则网格会正确调整.

有没有人已经成功将这个koGrid集成到Durandal/HotTowel模板中?

重现问题的步骤:

  • 创建一个新的ASP.NET MVC项目并选择Durandal模板
  • 在项目中添加koGrid(在Nuget中可用)
  • 将此网格放在视图上并添加虚拟数据
  • 运行并显示包含网格的视图

这是一个包含一个ASP.NET MVC项目的zip来重现这个问题:https://www.dropbox.com/s/15rphyhkqp1h8py/KOGrid-HotTowelTemplate.zip

谢谢你的帮助.

mik*_*der 4

这应该仅被视为一种解决方法!适用于Durandal.Core 1.2koGrid-2.1.1.js。如果有任何更改来修复此行为,我将更新该帖子。

在视图模型中添加 viewAttached() 函数(并确保将其添加到对象文字中),如下所示:

function viewAttached() {
    logger.log('Home View Attached', null, 'home', true);
    $(window).trigger('resize');
    return true;
}
Run Code Online (Sandbox Code Playgroud)

viewAttached 函数在合成绑定之后发生,触发器将导致koGrid更新其宽度/高度可观察值。koGrid监听此事件。

注意:您仍需要解决与 HotTowel 模板之间的 CSS 冲突。SPA 在 body 标签上使用 18px 的字体大小。此外,面板复选框应隐藏,这可能与 Bootstrap CSS 发生冲突。