knockout.js - 将 koGrid 与 Durandal/HotTowel 模板集成

标签 knockout.js durandal hottowel kogrid

我使用 Durandal 模板开发 asp.net 解决方案。

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

我们注意到,如果我们调整窗口大小,那么网格会正确调整。

是否有人已经成功将此 koGrid 集成到 Durandal/HotTowel 模板中?

重现问题的步骤:

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

    这是一个 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/

    相关文章:

    在 Hot Towel 应用程序中使用 Knockout 可观察到绑定(bind)

    javascript - 如何在knockoutjs foreach绑定(bind)中正确使用haml模板?

    javascript - 将项目添加到 knockout View 模型中,而不是更新 View

    javascript - Knockout.js:将 ViewModel 逻辑与模型分离

    knockout.js - KnockoutJS - 对 ko.computed 和 AJAX 请求的不满

    使用 Promise 时的 Durandal 启动画面

    cordova - 使用 durandal 创建一个 android 应用程序

    javascript - 如何根据json数据在 View 中动态加载自定义客户端控件/小部件?

    javascript - activateController 在页面加载时被调用两次

    c# - 如何在 Visual 2013 上安装 Hot Towel SPA,我在网页部分看不到模板