gpt4 book ai didi

javascript - url 歧义导致 ui router 实例化 controller 两次

转载 作者:行者123 更新时间:2023-12-02 06:00:58 25 4
gpt4 key购买 nike

我正在使用下面的状态定义(UI-Router 的)。一旦我调用 $state.go('products.new') Controller (ProductCtrl) 就会被调用两次。

出于某种原因,UI Router“忘记”了原始状态更改并仅根据 url 调用 Controller (在这种情况下确实是模棱两可的)。

如果我直接到达页面(深层链接), Controller 将被调用一次。

有什么建议可以让它发挥作用吗?

.state('products', {
abstract: true,
template: "<div ui-view></div>"
})

.state('products.product', {
url: '/products/:productId',
templateUrl: 'views/productView.html',
controller: 'ProductCtrl'
})

.state('products.new', {
url: '/products/new',
templateUrl: 'views/productView.html',
controller: 'ProductCtrl'
})

最佳答案

可能有很多内容,但您没有提供有关您的观点的太多细节:

它可能在路由中具有 Controller 和 View 之间的绑定(bind)(正如您所拥有的那样)并且还具有对 ng-controller="ProductCtrl" 的引用在@veroxii 建议的 View 中,路由会在请求 URL 时立即调用 Controller ,并在加载 View 后立即再次调用 Controller 。

但也可能是您正在使用带有引导选项卡或类似功能的 UI Router 之类的东西(我遇到了这个问题)并且您正在加载 <div ui-view></div>在选项卡内(嵌套 View )。在这种情况下, Controller 可能会被调用 N 次,即 <div ui-view></div> 的 N 次。在 View 中。移动 <div ui-view></div>在标签和标签集之外解决了我的问题。

关于javascript - url 歧义导致 ui router 实例化 controller 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25260317/

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