如何在Backbone.history.loadUrl之后运行回调函数?

时间:2015-02-23 16:47:43

标签: javascript backbone.js backbone-routing

我尝试了以下不起作用的代码。我也通过谷歌搜索但没有找到任何东西。 Backbone的官方文档没有关于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 个答案:

答案 0 :(得分: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
    });
 });