• Jump To … +
    app.js autocompleteSearch.js foodSearch.js nutritionTracker.js recipeSearch.js autocomplete.js food.js nutrition.js recipe.js namespace.js router.js templates.js foodSearchView.js nutritionEditorView.js nutritionTrackerView.js nutritionView.js recipeSearchView.js startView.js tabView.js
  • autocompleteSearch.js

  • ¶
    /** Collection of autocomplete search suggestions
     * @namespace  nt.Collections
     * @class nt.Collections.AutocompleteSearch
     * @memberof! <global>
     * @extends Backbone.Collection */
    nt.Collections.AutocompleteSearch = Backbone.Collection.extend(/** @lends nt.Collections.AutocompleteSearch# */{
    
        /** Reference to this collection's model. */
        model: nt.Models.Autocomplete,
    
        /** Nutritionix v2 API "as you type" suggestions */
        url: 'https://api.nutritionix.com/v2/autocomplete',
    
        /** Parameters to pass for fetch requests */
        api: {
            q: '',
            appId: '53242d79',
            appKey: '82289438a16ec7b92cdcf5ad054159c4'
        },
    
        /** Displays ajax error in the autocomplete drop menu and console */
        apiError: function(collection, response) {
            var errMsg = response.status + ' ' + response.statusText + ' : ' +
                         'Autocomplete server request error. <br> ' +
                         'Please try again.';
            if(window.console) console.log(errMsg);
            $('#search-suggest .dropdown-menu')
                .show()
                .html('<li class="typeahead-error"><a>' + errMsg + '</a></li>');
    
        }, // apiError
    
        /** Have the collection emit a 'fetch' event */
        fetch: function() {
            this.trigger( 'fetch', this );
            return Backbone.Model.prototype.fetch.apply( this, arguments );
    
        } // fetch
    
    });