使用AngularJS中的UI-Router将状态重定向到抽象状态的子节点会引发内部通信错误

时间:2017-01-05 19:42:41

标签: angularjs redirect angular-ui-router intercom

我正在将状态重构为一个抽象状态,其中包含一个包含许多嵌套视图的子项。

我需要保留oldState,我的目标是将oldState重定向引用到'app.newState.home'。

我在下面使用的当前实现(使用redirectTo,Redirect a state to default substate with UI-Router in AngularJS)在重定向到不同抽象状态的子状态方面起作用。但是 - 我从细分分析中得到了这个错误:

https://api-iam.intercom.io/ping/events 422 (Unprocessable Entity) [{"code":"422","message":"Cannot have more than 120 active event names"}]}

.state('app.oldState', {
  url: '/oldState',
  redirectTo: 'app.newState.home',
})

.state('app.newState', {
    url: '/oldState',
    // abstract: true,
    templateUrl: helper.basepath('anotherTemplate'),
    resolve: helper.resolveFor('datatables','easypiechart','ngDialog','angularFileUpload', 'filestyle', 'taginput'),
})


.state('app.newState.home', {
  url: '',
  views: {
    'firstView':{
      templateUrl: helper.basepath('templateOne'),
      controller: 'ControllerOne'
    },
    'secondView':{
      templateUrl: helper.basepath('templateTwo'),
      controller: 'ControllerOne'
    },
    'thirdView':{
      templateUrl: helper.basepath('templateThree'),
      controller: 'ControllerOne'
    },
    'fourthView':{
      templateUrl: helper.basepath('templateFour'),
      controller: 'ControllerTwo'
    },
  }
})

为什么会抛出此错误,如何正确解决此问题???

1 个答案:

答案 0 :(得分:1)

内部通信允许最多120个事件名称。这在此处记录 https://docs.intercom.com/the-intercom-platform/track-events-in-intercom 标题"我可以发送的事件类型数量是否有限制?"。

该文档还解释了如何"存档"事件,可能会解决这种情况,直到再次达到极限。