目前,我在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']
}])
答案 0 :(得分:0)
我没有EmberJS的直接经验,但有一种可能是在EmberJS脚本加载之前运行client.authenticate({ interactive: false });
。
另一种方法是指定不同的重定向URI(与应用程序的其余部分不同的页面),并且不在该页面上加载EmberJS。 (然后该页面可能会在完成时重定向回主应用程序。)您也可以完全放弃重定向并使用弹出式身份验证驱动程序。
答案 1 :(得分:0)
在#/
之前,你实际上并不在ember应用程序中。因此,任何一个余烬代码都不会对此产生任何影响。