Отображение результатов ajax из yahoo finance с использованием underscore.js

Скрипт успешно извлекает данные, но я не могу получить результаты «строки» для отображения с помощью underscore.js. Конкретной точкой отказа является «var = resultContentTemplate». Не могу понять это.

$(document).ready(function(){
var symbols = symbols || ['GOOG','A','AA','AAN'];
var yqlUrl = "http://query.yahooapis.com/v1/public/yql";
var historicalUrl = 'http://finance.yahoo.com/d/quotes.csv';

var queryTemplate = _.template("select * from csv where url='" + historicalUrl + "?s=<%= symbol %>&f=n0s0l1' and columns='name,symbol,LastTradePriceOnly'");

var resultPlaceholderTemplate = _.template(
  '
  • Please wait, Loading quotes...
  • '); var resultContentTemplate = _.template( '
      ' + '
    • <% _.each(results, function(row) { %>' + '<%=row.name %>' + '<%=row.symbol %>' + '<%=row.LastTradePriceOnly %>' + '<% }); %>' + '
    • ' + '
    '); // display the results of the query, replacing the 'loading' placeholder function displayResult(id, queryResult, symbol) { var resultsAsHtml = resultContentTemplate({results: queryResult.row, symbol: symbol}); $('#' + id).html(resultsAsHtml); } _.each(symbols, function(symbol) { var resultId = _.uniqueId(); //lay down a placeholder $('#resultContainer').append(resultPlaceholderTemplate({id:resultId, symbol:symbol})); $.ajax({ url: yqlUrl, data: {q: queryTemplate({symbol:symbol}), format: 'json'}, context: $('#resultContainer') }).done(function(output) { console.log(output); var response = _.isString(output) ? JSON.parse(output) : output; displayResult(resultId, response.query.results, symbol); }).fail(function(err) { console.log('the thing failed with an error'); console.log(err.responseText); }); }); });
    0
    nl ja de

    1 ответы

    See http://jsfiddle.net/mpBMK/

    Ваш код делает один запрос ajax на символ. Следовательно, displayResult вызывается для каждого символа, а параметр queryResult имеет только один дочерний элемент - строку для этого символа.

    РезультатContentTemplate уже получает одну строку, поэтому вы не должны перебирать результаты. Вместо:

    var resultContentTemplate = _.template(
    '
    • <%=result.name %><%=result.symbol %><%=result.LastTradePriceOnly %>
    '); ... //in displayResult(...) which is called once per symbol var resultsAsHtml = resultContentTemplate({result: queryResult.row, symbol: symbol});

    На скрипке должно быть ясно, в чем проблема и как ее можно исправить.

    1
    добавлено
    Да, это имеет смысл, и это решение. Спасибо, Джохоло.
    добавлено автор intheusa, источник
    JavaScript Jobs — чат
    JavaScript Jobs — чат
    8 336 участник(ов)

    JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

    JavaScript.ru
    JavaScript.ru
    7 932 участник(ов)

    Сообщество сайта JavaScript.ru в Slack.

    pro.js
    pro.js
    4 675 участник(ов)

    Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

    Верстка сайтов HTML/CSS/JS/PHP
    Верстка сайтов HTML/CSS/JS/PHP
    3 439 участник(ов)

    Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

    JavaScript — русскоговорящее сообщество
    JavaScript — русскоговорящее сообщество
    3 269 участник(ов)

    Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

    JavaScript Noobs — сообщество новичков
    JavaScript Noobs — сообщество новичков
    2 484 участник(ов)

    Чат для новичков

    javascript_ru
    javascript_ru
    915 участник(ов)

    Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

    jsChat
    jsChat
    603 участник(ов)

    Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

    JavaScript for Zombies Chat
    JavaScript for Zombies Chat
    492 участник(ов)

    Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

    All That JS
    All That JS
    417 участник(ов)

    JS на русском