0

我的 Meteor 应用程序中有一个登录方法,可在登录系统后将用户重定向到不同的路线。这是我的方法:

Meteor.loginWithPassword(emailVar, passwordVar, function (err) {
            if (err !== undefined) {
               // error handling code
            } else {
                if (!Roles.userIsInRole(Meteor.userId(), 'active')) {
                    return Router.go('account-deactivated');
                }
                if (Roles.userIsInRole(Meteor.userId(), 'pharmacist')) {
                    return Router.go('pharmacist-dashboard');
                }
                if (Roles.userIsInRole(Meteor.userId(), 'admin')) {
                    return Router.go('admin-dashboard');
                }
            }
        });

虽然此方法按预期工作,但由于 JavaScript 加载问题(例如:app.min.js 等),它会在我的主题(AdminLTE)中产生一些问题。例如,滑动效果在重定向页面上不起作用。但是当我从浏览器重新加载页面时,它开始按预期工作。

我知道这是一个需要解决的单独问题。但是,如果有一种方法可以使用 Iron-router 完全重新加载 Meteor 中的链接,那将会很有帮助。特别是当页面被转移到使用一组新的 JavaScript 和 CSS 的完全不同的用户环境时。

我浏览了Iron-router的用户文档,但修复并没有提供解决方案。

4

1 回答 1

1

尝试使用window.location.href重定向。

UsingRouter.go只是为您链接到的路由加载模板,而 usingwindow.location.href正在加载 url,就好像它是您刚刚单击的链接(实际刷新)一样。

不过,您需要使用实际的 url,而不是“路由名称”。

window.location.href = "http://yourapp.com/route/here";

于 2017-03-19T10:27:01.270 回答