2015-09-16 5 views
0

У меня есть запрос JSONP для получения информации функции через GeoServer, вызов выглядит примерно так:обработки с JSONP обратного вызова в уголек компонент

import Ember from 'ember'; 

export default Ember.Component.extend({ 

    _selectParcel: function() { 

    function handleJson(data){ 
     console.log(data); 
    } 

    $.ajax('url/geoserver/wms', { 
     type: 'GET', 
     data: { 
     service: 'WFS', 
     version: '1.1.0', 
     request: 'GetFeature', 
     typeName: 'name_here', 
     maxFeatures: 10000, 
     outputFormat: 'text/javascript', 
     srsname: 'EPSG:4326', 
     bbox: '-73.68229866027832, 40.97056664236637, -73.68229866027832, 40.97056664236637, EPSG:4326' 
    }, 
     dataType: 'jsonp', 
     jsonpCallback: 'callback:handleJson', 
     jsonp: 'format_options' 
    }); 

    } 
}); 

Проблема, с которой я сталкиваюсь имеет дело с областью обратного вызова - в этом случае, handleJson()

Я также попытался

.then(function(){}); 

после вызова Ajax, но не повезло.

_selectParcel будет называться часто на основе движения мыши.

Как следует обрабатывать обратный вызов jsonp в компоненте Ember?

Я видел это using ember data with jsonp, но я не уверен, как взаимодействовать с адаптером из компонента.

Ошибки консоли выглядят так: «Неиспользуемый ReferenceError: handleJson не определен», как написано выше, и «Неиспользуемый ReferenceError: parseResponse не определен» при использовании callback =? и ".then (функция() {})" обещание

+0

Любые ошибки в консоли? –

+0

Да, его «Uncaught ReferenceError: handleJson не определен», как написано выше, и «Uncaught ReferenceError: parseResponse не определен» при использовании callback =? и ". then (function() {})" Пообещать – cswright

ответ

1

Хорошо, так что есть на самом деле 2 штуки здесь.

  1. должны Ember данные запроса компоненты
  2. , как это Geoserver запросы JSONP обрабатываются

Для первого я нашел это писать полезные Should Components Load Data

Для второго, этот бит, где format_options и матч с jsonpCallback соответствовал трюку. Спасибо this link

$.ajax('url/geoserver/wms', { 
    type: 'GET', 
    data: { 
     service: 'WFS', 
     version: '1.1.0', 
     request: 'GetFeature', 
     typeName: 'name_here', 
     maxFeatures: 10000, 
     outputFormat: 'text/javascript', 
     srsname: 'EPSG:4326', 
     bbox: '-73.68229866027832, 40.97056664236637, -73.68229866027832, 40.97056664236637, EPSG:4326', 
     format_options: 'callback:getJson' 
    }, 
    dataType: 'jsonp', 
    jsonpCallback: 'getJson' 
    }).then(function(data) { 
    console.log(data); 
    }); 
0

Попробуйте изменить эту строку:

jsonpCallback: 'callback:handleJson' 

в

jsonpCallback: 'handleJson' 
+0

Вы правы! JsonpCallback нужно было изменить, и мне также пришлось сменить ключ format_options для соответствия. Спасибо =) – cswright

 Смежные вопросы

  • Нет связанных вопросов^_^