我有一些自定义过滤器,我可以将它们放在网格之外,但如果它们与内置过滤器位于同一位置会更好看,我可以以某种方式更改过滤器模板或以其他方式更改内置过滤器看法?
这是我想用自定义过滤器扩展的视图
我有一些自定义过滤器,我可以将它们放在网格之外,但如果它们与内置过滤器位于同一位置会更好看,我可以以某种方式更改过滤器模板或以其他方式更改内置过滤器看法?
这是我想用自定义过滤器扩展的视图
目前网格菜单(过滤视图)没有自定义/可编辑模板。
它是整个网格模板的一部分:gridTemplate.html
所以目前唯一的选择是复制gridTemplate.html
并在那里添加您的自定义过滤器并配置KoGird 以使用您的模板:
kg.defaultGridTemplate = function() {
return 'your new grid template html';
}
我开始在 KoGrid fork 中实现这个,但是 KoGrid 模板代码有点复杂,我现在没有时间让它工作。所以我做了一个不会改变 KoGrid 源代码的小技巧
(function() {
function initGridTemplate() {
var template = $(kg.defaultGridTemplate());
var filter = template.find("div.kgColMenu > div[data-bind='visible: showFilter']");
filter.attr("data-name", "config.filterOptions.model");
filter.html("");
kg.defaultGridTemplate = function () {
return template[0].outerHTML;
};
}
initGridTemplate();
}());
它通过将视图模型添加到 filterOptions 文字来工作。上面代码中的 data-name 是我在 viewmodels 类型上查找视图的框架,您可以改为
filter.attr("data-bind", "template: { name: config.filterOptions.templateName, data: config.filterOptions.model }");
这就是我的 data-name 属性在幕后所做的