使用 kendo.data.datasource 从远程源读取数据时如何检查特定数据

How do I check specific data when reading in data from a remote source with kendo.data.datasource

我正在使用 Telerik 平台构建混合新闻应用程序。我正在远程提取数据并且一切正常,但现在我需要检查以查看特色故事并将它们移到一个变量中。我有这样的数据:

viewModel = new kendo.observable({
            newsItems: new kendo.data.DataSource({
                transport: {
                    read: {
                        url: serviceURL,
                        dataType: "jsonp"
                    }
                },
                schema: {
                    data: "posts"
                }
            }) 
});

当我 console.log(viewModel):

拉 json 时它看起来像这样
ht.exend.init
    _aggregate:
    _changeHandler:
    _data: ht.extend.init[25]
        0: ht.extend.init    //Each article
            article_date: "June 09, 2015"
            author: "James Dean"
            categories: ht.extend.init[1]
                0: ht.extend.init
                    id: 1
                    title: "OC"
                length: 1
            content: "<p>Content</p>"
            custom_fields: ht.extend.init
                Views:
                featured_post: ht.extend.init[1]
                    0: "0"     //0 if not featured, 1 if featured
                    length: 1
                parent: function (){return i}
            date: "2015-06-09"
            .
            .
            .
            url: "url"
        1: ht.extend.init
        2: ht.extend.init
        .
        .
        .
        25: ht.extend.init
    _destroyed: Array[0]
    .
    .
    .
    transport: ft.extend.init

我想要做的是让它检查每篇文章以查看它是否是一篇精选文章 post(即值为 1)并将其移动到 var featured = [] 的数组中。 我在 telerik 文档中找不到任何内容,并且我尝试将 success: function () {} 放在数据源的调用中,但这也不起作用。提前谢谢你。

您应该能够访问数据源中的 json 数据。我正在使用 requestEnd 事件。一旦您知道某篇文章是特色文章,您就没有准确解释您要对数据做什么,所以我只是展示一种获取数据并在检索到数据后使用它的基本方法。

viewModel = new kendo.observable({
        newsItems: new kendo.data.DataSource({
            transport: {
                read: {
                    url: serviceURL,
                    dataType: "jsonp"
                }
            },
            schema: {
                data: "posts"
            },
                requestEnd: function (e) {
                    var response = e.response;
                    var type = e.type;
                    var obj = JSON.parse(response);
                    //now use obj to access your json data
                    //The if statement is just an example, you will need to
                    //change it to fit your data model 
                    if ( obj.featured_post == 1 ) {
                        //do something
                    }
                }
        }) 
});