【问题标题】:How can i run a callback function after Backbone.history.loadUrl?如何在 Backbone.history.loadUrl 之后运行回调函数?
【发布时间】:2015-02-23 16:47:43
【问题描述】:

我尝试了以下不起作用的代码。我也通过谷歌搜索但一无所获。 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
      });
});

【问题讨论】:

  • yourRouterInstance.on("route", function(route){ // alert('hello'); });
  • 我正在尝试在另一条路线上调用 loadUrl app_router.on('route:file', function(id, name) { ... }

标签: javascript backbone.js backbone-routing


【解决方案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
    });
 });

【讨论】:

  • 我刚刚更新了这个问题。请再看一遍。我必须在另一条路线上运行 loadUrl。在加载文件管理器之前,我必须支持页面加载。否则我的代码会被破坏。
  • 也许我可以合并两条路线,我不知道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2012-07-31
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 2015-12-26
相关资源
最近更新 更多