如何通过外部重定向在ui-router中传递数据?

时间:2016-12-15 18:09:00

标签: angularjs node.js redirect

如何使用外部重定向将数据传递到角度项目? 我需要从外部源将mdToast消息传递给我的项目。我需要在所有控制器上拦截这些消息。目前,我正在使用查询字符串来实现此目的。如何在runBlock中拦截此查询字符串?我想以某种方式在所有路线拦截它。

以下是我发送查询字符串的方式:

$stateProvider
.state('toastIntercept', {
   url: '/toastIntercept?message',
   templateUrl: 'views/redirect-by-intercept.html',
   controller: 'redirectController'
 });

进一步说明,这是我实际上要做的事情:

我理解这里不鼓励讨论,但我真的很感激这方面的一些投入或一些资源或文章。我找不到任何可靠的东西了。

我使用节点向用户生成电子邮件。用户可以通过该电子邮件采取一些行动,但最终落在我的静态角度项目上。什么是实现这一目标的正确方法?

我可以想到两种可能的方式:

  1. 使用处理电子邮件重定向的代理,执行操作并使用toast消息作为查询字符串重定向到角度项目,以通知用户他的操作。
  2. 使用其中一条路线处理静态角项目本身的电子邮件重定向,而不是代理。然而,这对我来说是一种反模式,因为静态项目不应该处理API级别的任务。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,我认为您可以通过添加拦截器解决此问题。

.config(function($httpProvider) {
    //Register the interceptor via an anonymous factory    
    $httpProvider.interceptors.push(function($q, dependency1, dependency2) {
          return {
           'request': function(config) {
               // same as above
            },

            'response': function(response) {
               // same as above
            }
          };
        });    
});

Yo可以为请求和响应添加拦截器。 拦截的其他可能值是:'requestError'和'responseError'

您还可以定义工厂,然后执行以下操作

$httpProvider.interceptors.push('connectionFactoryInterceptor');