2014-10-13 2 views
0

У меня есть нечеткий мозговой день или что-то в этом роде ... Я хочу установить var = данные, возвращаемые из вызова ajax, и использовать его в качестве параметра в диаграмме morris.jquery: установить переменную как данные, возвращенные из ajax-вызова

function GetICCGraphData() { 
     return $.ajax({ 
      url: "/url/" 
     }); 
    } 

$(function() { 
     var promise = GetICCGraphData(); 

     Morris.Area({ 
       element: 'icc-graph', 
       data: promise.success(function (data) { return data; }), 
...<snip>... 

URL-адрес возвращает JSON и если я ударил URL вручную и вставить данные в data: <paste> график работы, как это должно ... intially я пытался сделать это, как можно было бы подумать, что должно быть ... к просто используйте функцию как значение для данных ... тогда я вышел на эту «обещание» .... поэтому мне просто нужно выяснить, как сделать переменную равными данными из вызова ajax. Похоже, это должно быть легко, поэтому я не знаю, может быть, я слишком долго смотрел на него?

благодарит людей

+0

Кажется, что вы должны работать, это просто не произойдет сразу, потому что $ .ajax является асинхронным, вы можете запустить ваш ajax синхронно. – Shriike

+0

@Shriike Я получаю консольную ошибку «Не могу прочитать свойство« x »неопределенного» в файле morris.js ... fiddler показывает успешный вызов ajax и возвращает правильные данные. Re: сделать его синхронным ... просто нужно async = false, чтобы сделать это, а? –

ответ

1

Попробуйте вместо

$.get("/url/", function(data) { 
    $(".result").html(data); 
    alert("Load was performed."); 
}); 

От: http://api.jquery.com/jquery.get/

Интегрированный в код:

$(function() { 

    $.get("/url/", function(data) { 
     Morris.Area({ 
        element: 'icc-graph', 
        data: data, 
    ...<snip>... 
+0

awesome..thanks для публикации последующей интеграции ... это отлично работает, и я думаю, что понимаю, так что я готов идти. спасибо за ответ –

2

попробовать

function GetICCGraphData() { 
     return $.ajax({ 
      url: "/url/" 
     }); 
    } 

$(function() { 
     var promise = GetICCGraphData(); 
     promise.success(function (data) { 
      Morris.Area({ 
       element: 'icc-graph', 
       data: data, 
      }) 

     }) 
}) 

...<snip>... 
+0

спасибо за ответ –

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