2015-02-23 2 views
1

Я пробовал приведенный ниже код, который не работает. Также я искал через Google, но ничего не нашел. В официальной документации базовой станции нет записи о loadUrl.Как я могу запустить функцию обратного вызова после Backbone.history.loadUrl?

app_router.on('route:page', function(id, name) { 
    ... 
}); 

app_router.on('route:file', function(id, name) { 
     // first open the page 
     Backbone.history.loadUrl("page", function() { 
     // and open the file manager after page is loaded 
     }); 
}); 
+1

'yourRouterInstance.on (« route », function (route) { // alert ('hello'); }); ' – benhowdle89

+0

Я пытаюсь вызвать loadUrl в другом маршруте' app_router.on ('route: file', function (id, name) {...} ' – kastelli

ответ

1

Вы не можете передать обратный вызов в loadUrl.

От аннотированный source

Attempt to load the current URL fragment. 
If a route succeeds with a match, returns true. 
If no defined routes matches the fragment, returns false. 

и функции определения

loadUrl: function(fragment) 

Вместо этого используйте

router.on("route", function() { 
    ... 
}); 

Чтобы ответить на ваш отредактированный вопрос, вы можете сделать что-то вроде

app_router.on('route:file', function(id, name) { 
    // first open the page 
    if(Backbone.history.loadUrl("page")){ 
     // and open the file manager after page is loaded 
    }); 
}); 
+0

Я только что обновил вопрос. нужно запустить loadUrl в другом маршруте. Перед загрузкой диспетчера файлов я должен быть берегом, страница загружена. В противном случае мой код будет поврежден. – kastelli

+0

Может быть, я могу объединить два маршрута, я не знаю. – kastelli

+0

см. отредактированный ответ. – Sami