相关疑难解决方法(0)

将过滤器行添加到动态创建的kickout.js网格

我有用于绑定到结果表的视图模型。该视图动态呈现结果表,而无需任何先验的列数或列名知识,这很棒。类似于此处描述的内容并且为了保持通用而不是特定于域的目的,我从此处回答的问题中修改了代码示例。

但是我需要添加一个过滤器行以允许用户进行过滤,我已经基于下面的代码中的列名添加了一行输入,并尝试将它们绑定到视图模型。将它们绑定到视图模型很重要,这样当我刷新网格时,视图模型就会知道所应用的任何过滤器。

我已经尝试了几件事

  • 首先,如下面的代码片段所示,我创建了一个可观察的过滤器对象,并尝试将表中的每个字段绑定到该过滤器对象的属性。但是,这似乎不起作用。
  • 我尝试的另一个选择是基于列名创建一个可观察的过滤器对象数组,并将过滤器列绑定到似乎也不起作用的那个对象

任何想法将不胜感激

非常感谢,埃德

JS

var VM = function () {
  var self = this;
  self.items = ko.observableArray();
  self.filters = ko.observable({});

  self.columnNames = ko.computed(function () {
    if (self.items().length === 0)
        return [];
    var props = [];
    var obj = self.items()[0];
    for (var name in obj)
        props.push(name);
    return props;


  });

};
var vm = new VM();

ko.applyBindings(vm);

vm.items.push({
  'Name': 'John',
  'Age': 25
});
vm.items.push({
'Name': 'Morgan',
'Age': 26
});
Run Code Online (Sandbox Code Playgroud)

查看:

<table>
  <thead>
    <tr data-bind="foreach: …
Run Code Online (Sandbox Code Playgroud)

knockout.js

1
推荐指数
1
解决办法
2489
查看次数

标签 统计

knockout.js ×1