Ruby on Rails и JS - Как получить объект Json в Javascript? - PullRequest
0 голосов
/ 25 мая 2018

У меня есть Json с некоторой информацией, использующей Ruby on Rails (я генерирую это с помощью метода в контроллере):

pis: [
{
kilometer: 621,
category: "fare",
name: "Guaraçaí",
toll: "false",
lat: -21.0059,
lng: -51.1904,
icon: "/img/icon_fare_map.png",
pedagios: [ ]
},

И следующая функция получает Json (это показывает маркеры в моих Google Maps):

function getAllPI(){
 $.get("/map_pis", function(data){
  $(data.pis).each(function(){

   // Adds a marker for each Json item
   addMarker(this);

   // Show all markers
   showMarkers();
  })
 });
}

Я просто хочу добавить маркер и показать его, если мое поле 'toll' в Json 'true'.Если это «ложь», я не хочу показывать.Как я могу это сделать?Я пытался с:

if (pis.toll == true ) {
 addMarker(this);
}

Но это не сработало.У меня нет большого опыта работы с Json.

Кто-то может мне помочь?Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вам необходимо определить параметр для вашего блока .each, который ссылается на конкретный элемент в массиве, с которым вы работаете.Затем вы можете проверить, является ли плата за проезд истинной, и если это так, добавить маркер.Я не уверен, что this - это аргумент, который вы хотели передать, но я бы предположил, что item - это то, что вам нужно.

function getAllPI(){
 $.get("/map_pis", function(data){
  $(data.pis).each(function(item){

   // Adds a marker for each Json item
   if (item.toll) addMarker(item);

   // Show all markers
   showMarkers();
  })
 });
}
0 голосов
/ 25 мая 2018

В вашем json значение вашей пошлины выглядит как строка.Поэтому выполнение

pis.toll == true

всегда будет false, так как "true" не равно true

Возможно, это будет работать

pis.toll == "true" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...