2013-11-08 2 views
2

Я новичок в позвоночнике, и я пытаюсь создать дампикера. Я пытаюсь добавить прослушиватель событий без модели, но прослушиватель событий щелчка, добавленный в представление, действует смешно, поэтому я предполагаю, что я собираюсь сделать это неправильно. Код, который я пытаюсь подражать (который работает), выглядит следующим образом:Backbone.js datepicker прослушиватель событий без модели

initialize:function() { 
    ... 
    this.model.bind('change', this.pageSetup, this); 
    ... 
} 

    pageSetup:function() { 

    var self = this; 

     $("#date-range").datepicker({ 
     onSelect:function (dateText, datePickeOBJ) { 
      self.selectedDate = dateText; 
      self.onDateChange(datePickeOBJ); 
     }, 
     defaultDate: this.selectedDate, 
     maxDate:'-2' 
     }); 
    ... 
} 

который, кажется, работает нормально. В моем случае нет модели. Прямо сейчас у меня есть

return BaseView.extend({ 
    el: "<div id='main-inner'>", 

    template: "print-report", 
    events: { 
     "change #date-range": "datePicker" 
    }, ... 
datePicker: function() { 
var self = this; 

$("#date-range").datepicker({ 
     onSelect:function (dateText, datePickeOBJ) { 
      self.selectedDate = dateText; 
      self.onDateChange(datePickeOBJ); 
     }, 
     defaultDate: this.selectedDate, 
     maxDate:'-2' 
     }); 
}, ... 

Как я могу лучше это сделать, это хороший способ позвоночника?

ответ

3

Я просто создаю $.datepicker() на mouseover.

events: { 
    'mouseover #dateinput' : 'createDatePicker' 
}, 

createDatePicker:function(e) { 
    var view = this; 

    $(e.currentTarget).datepicker({ 
    maxDate:'-2', 
    defaultDate:view.selectedDate, 
    onSelect:function(dateText,datePicker) { 
     console.log('onSelect',dateText); 
     view.selectedDate = dateText; 
     view.onDateChange(datePicker); 
    } 
    }); 
} 

Вот demo

Смежные вопросы