首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HotTowel模板中使用KoGrid

在HotTowel模板中使用KoGrid
EN

Stack Overflow用户
提问于 2013-03-07 23:44:27
回答 2查看 592关注 0票数 0

我正在尝试在HotTowel SPA模板中的HTML视图中使用KoGrid。我创建了一个简单的视图:

代码语言:javascript
复制
<section>
    <h2 class="page-title" data-bind="text: title"></h2>

    <div class="gridStyle" data-bind="koGrid: gridOptions"></div>
</section>

并在JS中添加了模型数据:

代码语言:javascript
复制
define(['services/logger'], function (logger) {
var vm = {
    activate: activate,
    title: 'My Grid'
};

return vm;

//#region Internal Methods
function activate() {
    var self = this;
    this.myData = ko.observableArray([{ name: "Moroni", age: 50 },
                                      { name: "Tiancum", age: 43 },
                                      { name: "Jacob", age: 27 },
                                      { name: "Nephi", age: 29 },
                                      { name: "Enos", age: 34 }]);
    this.gridOptions = { data: self.myData };
    return true;
}
//#endregion

});

网格在页面上,但样式呈现的宽度和位置似乎完全错误,以至于列在彼此的顶部,大多数数据看起来都不正确。KoGrid.css文件被正确引用。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-06-28 20:14:30

问题的核心是“当KOGrid在Durandal/HotTowel中进行绑定时,KOGrid元素还不是DOM的一部分”。您需要确保KOGrid在附加视图之前不进行绑定。这可以通过以下方式实现:

1)向视图模型添加一个新的可观察对象,以保存一个布尔值,用于表示视图是否已由durandal附加:

代码语言:javascript
复制
isAttachedToView = ko.observable(false)

并公开它

代码语言:javascript
复制
isAttachedToView: isAttachedToView

2)当调用viewAttached函数回调时,更新为真:

代码语言:javascript
复制
function viewAttached() {
    isAttachedToView(true);
    return true;
}

3)使用ko if语句将HTML括起来,以确保在附加视图之前不计算HTML的一部分(即kogrid不执行其绑定):

代码语言:javascript
复制
<!-- ko if: isAttachedToView() -->
    <div data-bind="koGrid: { data: ...

<!-- /ko -->

4)下线视图时将isAttachedToView重置为false

代码语言:javascript
复制
function deactivate() {
    isAttachedToView(false);
}

并公开这一点:

代码语言:javascript
复制
deactivate: deactivate
票数 1
EN

Stack Overflow用户

发布于 2013-06-04 14:29:57

你可能已经弄明白了这一点,但今天也面临着同样的问题。快速浏览一下chrome检查器,我发现koGrid维度属性没有正确注册,这告诉我这是一个时间问题。我找到了一个answered question relating to the same problem here

我确实尝试过这个解决方案,但仍有一些工作要做,才能让它更好地发挥作用。我决定放弃koGrid,因为我并不是真的想要它的所有功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15275450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档