如何在Ember.js中处理无斜线的无效路由

时间:2014-02-20 18:13:40

标签: ember.js dropbox-api

目前,我在Ember.js中处理无效路线,如下所示:

this.route('invalid', { path: '*path' }

这适用于以下路线:

https://www.appname.com/#/misspelled_name

但是,使用Dropbox Datastores API时,我遇到了一些问题。在身份验证请求后,Dropbox会将我重定向到:

https://www.appname.com/#access_token=...

有办法处理这条路线吗?路线名称前没有斜线?在这种情况下,“无效”路由未应用,并且收到错误“未找到路径access_token = ...”。我应该如何在Ember处理这个回应?

更新

我认为不可能处理这个问题。对我来说唯一可行的解​​决方案是在Ember加载之前进行身份验证。身份验证成功后,我加载了我的余烬应用程序:

   window.dropboxClient = new Dropbox.Client({
      key: 'some_key'
    });

    dropboxClient.authenticate({ interactive: true }, function(error) {
      if (error) {
        return console.log('Error during authentication');
      }
    });

    yepnope([{
      test : window.dropboxClient.isAuthenticated(),
      yep  : ['my-ember-app.js']
    }])

2 个答案:

答案 0 :(得分:0)

我没有EmberJS的直接经验,但有一种可能是在EmberJS脚本加载之前运行client.authenticate({ interactive: false });

另一种方法是指定不同的重定向URI(与应用程序的其余部分不同的页面),并且不在该页面上加载EmberJS。 (然后该页面可能会在完成时重定向回主应用程序。)您也可以完全放弃重定向并使用弹出式身份验证驱动程序。

答案 1 :(得分:0)

#/之前,你实际上并不在ember应用程序中。因此,任何一个余烬代码都不会对此产生任何影响。