0

在我的淘汰赛应用程序中,我有一部分类似于这种结构:

<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,容器也有自己的,并维护其子项的 observableArray。

当创建一个新<section>的时,我需要通过敲除知道它们的宽度/高度是什么<sections>并重新绘制它们。

什么是淘汰赛的最佳实践?(我宁愿不手动计算百分比,或者使用 jquery 选择器来查找元素并手动查询它们的高度。)

4

1 回答 1

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>
于 2013-10-16T18:20:36.183 回答