define(['jquery', 'underscore', 'backbone','text!modules/search/foundViewTemplate.html','text!modules/search/foundItemTemplate.html', 'modules/base/baseView'], function($, _, Backbone, foundViewTemplate, foundItemTemplate, BaseView){ var FoundView = BaseView.extend({ collection: null, //initialize template template:_.template(foundViewTemplate), itemTemplate:_.template(foundItemTemplate), initialize: function (options) { var self = this; FoundView.__super__.initialize.call(this); this.collection = options.collection; this.collection.fetch({ success: function(){ self.renderItem(); } }); }, events: { "click #pagSucc": "nextPageSearch", "click #pagPrec": "prevPageSearch" }, goTop: function(element) { $('html, body').animate({ scrollTop: '0px' }, 'fast'); return element; // for chaining... }, renderItem: function(){ var $ul = $('#foundRicette'); $ul.html(''); var items = this.itemTemplate({data:this.collection.toJSON()}); $ul.html( items ); $ul.listview( "refresh" ); $ul.trigger( "updatelayout"); if(this.collection.indexItems === 0) $('#pagPrec').hide(); else $('#pagPrec').show(); if(this.collection.getTotalRecords() < (this.collection.indexItems + 1) * this.collection.numItems) $('#pagSucc').hide(); else $('#pagSucc').show(); $.mobile.loading( 'hide' ); //$( '[data-alpha="true"]' ).alphascroll(); }, nextPageSearch: function(e){ e.preventDefault(); var self=this; this.collection.indexItems++; this.collection.fetch({reset: true, success: function(){ self.renderItem(); } }); this.goTop(); }, prevPageSearch: function(e){ e.preventDefault(); var self=this; this.collection.indexItems--; this.collection.fetch({reset: true, success: function(){ self.renderItem(); } }); }, //render the content into div of view render: function(){ //this.header.title = "pippo"; FoundView.__super__.render.call(this); //this.el is the root element of Backbone.View. By default, it is a div. //$el is cached jQuery object for the view's element. //append the compiled template into view div container this.$el.append(this.header.$el); this.$el.append(this.template()); this.$el.append(this.footer.$el); //return to enable chained calls this.$el.find("#searchBtn").addClass("ui-btn-active"); return this; } }); return FoundView; });