Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как преобразовать в массив. (https://javascript.ru/forum/misc/63415-kak-preobrazovat-v-massiv.html)

Сергей Лобанов 06.06.2016 15:45

Как преобразовать в массив.
 
$(document).ajaxStop(function(){   
      var includecoord='';
      $(document).on('click', '.link-map', function(e) {
 	
					$('#add_map').empty();
				
			//	includecoord= JSON.parse($(this).attr("data-coords"));
						
				    alert(includecoord);
					ymaps.ready(init);
					var myMap;
					var mySearchControl;
					function init () {
					    myMap = new ymaps.Map("add_map", {
					        center: [55.57265, 39.530777],
					        controls: ['zoomControl'],
					        zoom: 13
					    }, {
					        balloonMaxWidth: 200
					    });
					
					    // Обработка события, возникающего при щелчке
					    // левой кнопкой мыши в любой точке карты.
					    // При возникновении такого события откроем балун.
					    // Создаем экземпляр класса ymaps.control.SearchControl
					        mySearchControl = new ymaps.control.SearchControl({
					            options: {
					                noPlacemark: true
					            }
					        }),
					   // Результаты поиска будем помещать в коллекцию.
					        mySearchResults = new ymaps.GeoObjectCollection(null, {
					            hintContentLayout: ymaps.templateLayoutFactory.createClass('$[properties.name]')
					        });
					    myMap.controls.add(mySearchControl);
					    myMap.geoObjects.add(mySearchResults);
					    // При клике по найденному объекту метка становится красной.
					    mySearchResults.events.add('click', function (e) {
					        e.get('target').options.set('preset', 'islands#redIcon');
					    });
					    // Выбранный результат помещаем в коллекцию.
					    mySearchControl.events.add('resultselect', function (e) {
					        var index = e.get('index');
					        mySearchControl.getResult(index).then(function (res) {
					           mySearchResults.add(res);
					        });
					    }).add('submit', function () {
					            mySearchResults.removeAll();
					        })   
					    
					   ymaps.route([{ type: 'viaPoint',point: Люберцы, проспект Ильича, 40 },{ type: 'viaPoint',point: Люберцы, проспект Ильича, 60 }, 'Москва']).then(
					    function (route) {
					        myMap.geoObjects.add(route);
					    },
					    function (error) {
					        alert('Возникла ошибка: ' + error.message);
					    }
					);
					}
					
				});	
      
     });


Как мне это значение [{ type: 'viaPoint',point: Люберцы, проспект Ильича, 40 },{ type: 'viaPoint',point: Люберцы, проспект Ильича, 60 }, 'Москва'] из строки преобразовать в массив, чтоб скрипт его правильно воспринял, а то при обычной подстановке строки из атрибута, типа
$(this).attr("data-coords")
выскакивает ошибка что не найден маршрут. Т.е. мне нужно получать значение при нажатии на ссылку, оттуда оно берется из data-coords , потом как-то все надо преобразовать в массив. Например, будет выглядеть так:
ymaps.route(myarr).then(
...
Не пойму как это сделать. Кто подскажет? Заранее спасибо.

рони 06.06.2016 16:33

Цитата:

Сообщение от Сергей Лобанов
$(this).attr("data-coords")

$(this).data("coords")

рони 06.06.2016 16:47

Сергей Лобанов,
а зачем клик назначать в ajaxStop?

Сергей Лобанов 06.06.2016 17:10

Ну у меня загрузка ссылки, откуда беру data загружается через ajax.
Не подскажете как мне быть в моем случае?

рони 06.06.2016 17:45

Цитата:

Сообщение от Сергей Лобанов
Не подскажете как мне быть в моем случае?

нет но может вам грузить сразу массив jQuery.getJSON(), а не ссылку

Сергей Лобанов 06.06.2016 17:56

Спасибо за отзывчивость- попробую)


Часовой пояс GMT +3, время: 01:57.