在KendoUI中访问Datasource的过滤器对象的字段

时间:2015-03-24 18:01:24

标签: javascript kendo-ui kendo-datasource

对于这个例子,我从本网站的其他地方取消代码:

<script>
 var dataSource = new kendo.data.DataSource({
 data: [
    { name: "Jane Doe" },
    { name: "John Doe" }
 ],
 filter: { field: "name", operator: "startswith", value: "Jane" }
});
var filter = dataSource.filter();
console.log(filter.logic);  // displays "and"
console.log(filter.filters[0]); displays '{field: "name", operator: "startswith", value: "Jane"}'
</script>

当我尝试

 console.log(filter.filters[0]["field"]);

 console.log(filter.filters[0].field);

 console.log(filter.filters.field);

我一直收到消息

  

TypeError:fitem.filters [0]未定义

或类似的。我正在寻找抛出值“name”的表达式。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

根据您的TypeError,它表示您正在使用fitem.filters[0],并且您在任何地方都没有在发布的代码中声明fitem。这可能是你的问题。

使用filter.filters[0].field可以正常工作。这是一个jsfiddle,可以显示它的实际效果。

它可能是一个范围问题,或者您在声明数据源之前以某种方式调用它。你能提供更多代码吗?