对于这个例子,我从本网站的其他地方取消代码:
<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”的表达式。
如何实现这一目标?
答案 0 :(得分:1)
根据您的TypeError
,它表示您正在使用fitem.filters[0]
,并且您在任何地方都没有在发布的代码中声明fitem
。这可能是你的问题。
使用filter.filters[0].field
可以正常工作。这是一个jsfiddle,可以显示它的实际效果。
它可能是一个范围问题,或者您在声明数据源之前以某种方式调用它。你能提供更多代码吗?