Говорит, что функция возвращает null, даже если данные переданы?

#jquery

#jquery

Вопрос:

Когда я пытаюсь разобраться с этой функцией В Jquery, она говорит, что formatvalues возвращает значение now, я не понимаю, что, когда значения элемента передаются нормально

 function GetViewData(data) {
$.ajax({
    type: "GET",
    url: "/Services/Configuration/ViewServices.asmx/GetIncidentViewData",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: OnViewDataLoaded,
    error: OnViewDataNodeLoadFailed
});
  

}

 function OnViewDataLoaded(data, status) {
$('#viewpane-table > tbody').empty();
var members = data.d;
var loadedFirst = false;

var tablevalues = '<tr>';

$.each(data.d.Columns, function (index, value) {

    tablevalues  = FormatValues(value);
});
tablevalues  = '</tr>';


$('#viewpane-table  > tbody').append(tablevalues);
  

Формат значений — это функция

  function FormatValues(value) {
    return '<td><b>'   value   '</b></td>';
}
  

Сообщение об ошибке

Необработанное исключение в строке 25, столбец 9 в init.js

0x800a138f — Ошибка времени выполнения JavaScript: значение свойства ‘FormatValues’ равно нулю или не определено, не является объектом функции

Комментарии:

1. 1. Это не имеет никакого отношения к C #. 2. Отредактируйте свой вопрос, чтобы включить точное сообщение об ошибке.

2. Что вы получаете при консоли. зарегистрируйте свой параметр данных в вашей функции onViewDataLoaded? Кроме того, где вы объявляете свою функцию FormatValues? Находится ли это в глобальной области видимости?

3. @oliakaoil С в том же js-файле

4. @DavidBuckley Мне кажется, что ваша ошибка не предполагает, что функция определена, что означает, что она не может найти вашу функцию, хотя она где-то технически объявлена, вот почему я предположил, что может возникнуть проблема с областью действия.

Ответ №1:

Я предполагаю, что если бы вы жестко закодировали «значение» в своей функции, это сработало бы … т. Е.

 FormatValues("hello world") 
  

вернет

 <td><b>hello world</b></td> 
  

как и ожидалось.

Таким образом, проблема, скорее всего, в $.each(data.d.Columns, function (index, value) вызове.

Комментарии:

1. исправьте, что-то не так со значениями