2015-06-10 9 views
1

Я использую платформу Telerik для создания гибридного новостного приложения. Я удаляю данные удаленно, и у меня все работает правильно, но теперь мне нужно проверить, чтобы увидеть отличные истории и переместить их в переменную. Я данные вытягивать в так:Как проверить конкретные данные при чтении данных из удаленного источника с помощью kendo.data.datasource

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

Когда JSON вытягивается это выглядит, когда я console.log (ViewModel):

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 

То, что я хотел бы сделать, это его проверьте каждую статью, чтобы узнать, является ли это признаком (т. е. имеет значение 1) и переместите его в массив var featured = []. Я не могу найти что-либо в документации telerik, и я попытался поставить успех: function() {} в вызове dataSource, но это тоже не сработает. Заранее спасибо.

ответ

1

Вы должны иметь возможность получить доступ к вашим данным 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 
        } 
       } 
     }) 
}); 
+0

Когда я попробовал, что он сказал «Uncaught SyntaxError: Неожиданный токен о» – kingcobra1986

+0

Ваш serviceURL должен возвращаться действительный JSON. –

+0

Я закончил использовать это, чтобы получить переменную featured_post e.response.posts [j] .custom_fields.fearless_featured_post [0]; (внутри цикла for j <25) – kingcobra1986