2

If data is not available in server or server error occurs or server data is null javascript throws exception obj is null. How to catch this exception?

Search in stackoverflow did not give any results.

Here's the code:

var test1 = new Bloodhound({
    datumTokenizer: function (d) {
        return Bloodhound.tokenizers.whitespace(d.value);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
        url: "http://URL?query=",

        replace: function(url, query) {
            return url + "" + query;
        }
    }
});

test1.initialize();

$('#idOfAutoCompleteTextBox').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},
{
    name: 'test1',
    displayKey: 'value',
    source: test1.ttAdapter()
});
yW0K5o
  • 913
  • 1
  • 17
  • 32

1 Answers1

0

I'm not sure this is solution for your problem, but currently I have the same javascript exception when handling empty result (typeahead 0.11.1).

In the remote URL file when array is empty, echo something that is not in JSON format.

JavaScript

  var termekek = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('megnev'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
      url: _BASE_ +  'components/com_rexwebshop/include/keres.php?q=%QUERY',
      wildcard: '%QUERY'
    }
  });

  jQuery('.typeahead').typeahead(null, {
    name: 'rs3ws-termekek',
    display: 'megnev',
    source: termekek,
      templates: {
        empty: [
          '<div class="empty-message">',
            '<? echo JTEXT::_('Nincs találat') ?>',
          '</div>'
        ].join('\n'),
        suggestion: Handlebars.compile('<div><strong>{{megnev}}</strong> – {{bruttoar}}</div>')
      }
  });

PHP

  // [collecting data]

  if ( count($rows) == 0 ) 
    echo "_NOT_FOUND_";
  else
    echo json_encode($rows, JSON_UNESCAPED_SLASHES);