我使用 Durandal 模板开发 asp.net 解决方案。
我尝试使用与 knockout 兼容的 koGrid ( https://github.com/Knockout-Contrib/KoGrid )。在 Durandal 管理的测试页面中插入此网格时,它不起作用:网格似乎存在但未正确显示。
我们注意到,如果我们调整窗口大小,那么网格会正确调整。
是否有人已经成功将此 koGrid 集成到 Durandal/HotTowel 模板中?
重现问题的步骤:
这是一个 zip,其中包含一个小的 ASP.NET MVC 项目以重现该问题:https://www.dropbox.com/s/15rphyhkqp1h8py/KOGrid-HotTowelTemplate.zip
谢谢你的帮助。
最佳答案
这应该只被视为一种解决方法!适用于 Durandal.Core 1.2 与 koGrid-2.1.1.js .如果任一更改以修复此行为,我将更新帖子。
在您的 View 模型中添加一个 viewAttached() 函数(并确保将其添加到您的对象文字中),如下所示:
function viewAttached() {
logger.log('Home View Attached', null, 'home', true);
$(window).trigger('resize');
return true;
}
viewAttached 函数发生在组合绑定(bind)之后,触发会导致 koGrid 更新其宽度/高度可观察值。 koGrid 监听这个事件。
注意:您仍然需要解决与 HotTowel 模板的 CSS 冲突。 SPA 在 body 标签上使用 18px 的字体大小。面板复选框也应该被隐藏,这可能与 Bootstrap CSS 冲突。
关于knockout.js - 将 koGrid 与 Durandal/HotTowel 模板集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680588/