gpt4 book ai didi

angularjs - 在不使用 $rootScope 的情况下使用 Angular ui 路由器防止 stateChange

转载 作者:行者123 更新时间:2023-12-02 22:16:00 26 4
gpt4 key购买 nike

我的用户可以离开状态,但在我想显示模式对话框“你想保存吗?”之前

仅当用户数据脏时才意味着已更改。

我不想要的是将 EditController 中的 isDirty 属性粘贴到 $rootScope 转到 stateChangeStart 事件并检查 isDirty,然后显示/不显示保存对话框。

每一本 javascript 初学者书籍都说要防止全局变量...

1.) 那么在不侵入 $rootscope 的情况下防止状态更改的专业方法是什么?

2.) ui-router 是否有任何帮助程序库可以增强 ui-router 在 Controller 内提供函数 Hook 以封装 ui 逻辑?

最佳答案

(1) 根据docs状态更改事件

 $rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){
event.preventDefault();
// transitionTo() promise will be rejected with
// a 'transition prevented' error
})

您可以在适当且可行的情况下将 $rootScope 更改为 $scope。

将自定义数据附加到状态对象下,您可以传递自定义数据。

(2) 我不确定你在问什么,但工厂/服务/提供商确实会有所帮助。

关于angularjs - 在不使用 $rootScope 的情况下使用 Angular ui 路由器防止 stateChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27787380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com