为什么第二次使用$ state.transitionTo()导致" TypeError:无法读取属性' $$ nextSibling' null"?

时间:2015-02-06 19:08:27

标签: javascript angularjs runtime-error angular-ui-router

这是最奇怪的事情,我发现代码完全符合我的要求:使用ui-router更改显示的URL而不重新加载页面。就是这样:

$state.transitionTo($state.current, args, { location: true, inherit: false, notify: false});

问题是,它只在第一次有效。在第二次调用该行之后,angular进入apply / digest循环&我的分页。控制台中显示的错误是:

TypeError: Cannot read property '$$nextSibling' of null
    at Scope.$digest (angular.js:12569)
    at Scope.$apply (angular.js:12805)
    at HTMLDivElement.<anonymous> (angular.js:19138)
    at HTMLDivElement.jQuery.event.dispatch (jquery.js:4641)
    at HTMLDivElement.elemData.handle (jquery.js:4309)

1 个答案:

答案 0 :(得分:1)

transitionTo()函数的第一个参数应该是一个String(一个州名),但是你传递一个Object(当前的状态对象)。

您应该通过$state.current

,而不是传递$state.current.name
$state.transitionTo($state.current.name, args, { location: true, inherit: false, notify: false});

如果不查看UI-Router代码,我不能说这是否解释了您收到的错误。