我的第一个stackoverflow问题。请原谅我普遍缺乏理解。我正在努力。
我根据用户标识的日期自动生成一个表,该日期对于提供的每一天具有不同的记录值。我正在引用一个定义行和列的.JSON metagen / metadata文件,但我似乎无法找到一种方法来过滤掉作为空对象传递的结果。我想删除没有结果的行。我相信我需要在绑定中创建或引用一个viewmodel函数,但到目前为止我尝试过的所有内容都失败了。
我有一个绑定文件,它读入数据并根据记录名称计算字段。然后使用knockout foreach语句创建记录,并从我的绑定文件中找到的Subgrid()函数中获取值。数据以数字格式读入。
视图
<!-- ko foreach: $data.cols -->
<th data-bind="text:$data.label === undefined ? $data.value:$data.label"></th>
<!-- /ko -->
</tr>
</thead>
<tbody>
<!-- ko foreach: $data.rows -->
<tr>
<td data-bind="text:$data.label === undefined ? $data.value:$data.label"></td>
<!-- ko foreach: $parent.cols -->
<td data-class="subgridRow"></td>
<!-- /ko -->
</tr>
<!-- /ko -->
Viewmodel
/*global define,sandbox */
define([
'scalejs.sandbox!subgrid',
], function (
sandbox
) {
'use strict';
return function (node) {
var observable = sandbox.mvvm.observable,
merge = sandbox.object.merge,
text = observable(node.text);
sandbox.flag.invoke('loadUwf');
return merge(node, {
text: text }
绑定文件的返回部分。
//remove values for missing LoB records and return the value
loop1: for (var obj in exdata){
for (var key in exdata[obj]){
if (exdata[obj][key]=== parentValue || ctx.$parent.value === "TOTAL"){
if( !text ){text = 0;}
if (ctx.$parent.value === "TOTAL"){
return {text: recalc.total.toFixed(round) + ' ' + unit,}}
else{return {text: recalc.val.toFixed(round) + ' ' + unit,}
break loop1;}