2013-03-25 3 views
1

Просто интересно, почему у моего маршрутизатора нет метода навигации?Магистральный маршрутизатор не имеет метода навигации

У меня есть new App.Router;, который называется должным образом. И на мой взгляд, я пытаюсь вызвать мой взгляд указательный так:

addTrip: function(e){ 

    e.preventDefault() ; 

    //Adding to collection 
    var newTrip = this.collection.create({ 
     title: this.$('#new_trip #title').val(), 
     where: this.$('#new_trip #where').val(), 
     desc: this.$('#new_trip #desc').val(), 
     rating: this.$('#new_trip .active').text() 
    }, { wait: true }) ; 

    if(newTrip.validationError){ 
     this.errorReport(newTrip.validationError) ; 
    } 

    this.clearForm() ; 

    //Navigate to home route 
    App.Router.navigate('', true) ; 

} 

Я получаю следующее сообщение об ошибке в Chrome Dev Tools:

Uncaught TypeError: Object function(){ return parent.apply(this, arguments); } has no method 'navigate'

Я даже пытался позвонить перемещаться из консоли и он тоже не работает.

Что я делаю неправильно?

+0

как вы заявляете 'App.Router'? – neebz

ответ

9

Вы должны вызвать навигацию по объекту вашего маршрутизатора. Кажется, вы называете это на самом классе.

App.myRouter = new Backbone.Router() //or if you have your own base router class App.myRouter = new App.Router() 


myRouter.navigate('', true); 
+0

У меня был мой Router, объявленный в 'index.html', но для его повторного использования в моем методе. Спасибо @nEEbz –

+0

Используя экземпляр маршрутизатора, я все еще не мог вызвать .navigate (myPath). Он работает, когда я называю Backbone.history.navigate (myPath). – Micros

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