在我的淘汰应用程序中,我有一部分类似于这种结构:
<section class="container">
<section class="percent-sizes">
<article class="d3Graph"></article>
</section>
.
.
.
<section class="percent-sizes">
<article class="d3Graph"></article>
</section>
</section>
这些<sections>
是动态的,可以动态创建。
基本上我有一堆<sections>
占据屏幕的百分比部分,具体取决于有多少部分,然后在每一部分我都有d3图表,其中我必须知道像素尺寸才能绘制它们。
这些部分中的每一部分都有自己的ViewModel,容器也有自己的ViewModel,并且维护了它的子节点observableArray。
创建新的<section>
时,我需要知道通过敲除<sections>
的宽度/高度是什么并重绘它们。
这次淘汰赛的最佳做法是什么? (我不想手工计算百分比,或者使用jquery选择器来查找元素并手动查询它们的高度。)
答案 0 :(得分:0)
为什么不将它们全部包含在observableArray中,只需将高度设置为计算值,例如 -
function whateverViewModel() {
var self = this;
self.height = ko.computed(function () {
return (1 / sectionContainer.length);
});
}
var sectionContainer = ko.observableArray();
sectionContainer.push(new whateverViewModel());
<section data-bind="style: { height: height }"></section>