gpt4 book ai didi

javascript - AngularJS UI Router 多次加载同一个 Controller

转载 作者:行者123 更新时间:2023-11-30 12:30:38 27 4
gpt4 key购买 nike

我遇到了以下问题:

这是我的 $stateProvider 的一部分:

angular.module('sampleApp').config(function ($stateProvider) {
$stateProvider
.state('property', {
url: '/property',
templateUrl: 'app/property/property.html',
controller: 'PropertyCtrl',
authenticate: true,
role: 'user'
})
.state('property.selected', {
url : '/:propertyId',
templateUrl : 'app/property/edit/edit-controller.html',
controller : 'PropertyEditCtrl'
})
.state('property.selected.settings', {
url : '/settings',
templateUrl : 'app/property/partials/settings.html'
})
.state('property.selected.settings.general', {
url : '/general',
templateUrl : 'app/property/partials/settings-general/settings-general.html',
controller : 'SettingsGeneralCtrl'
})
.state('property.selected.settings.property', {
url : '/property',
templateUrl : 'app/property/partials/settings-property/settings-property.html',
controller : 'SettingsPropertyCtrl'
})
.state('property.selected.settings.extras', {
url : '/extras',
templateUrl : 'app/property/partials/settings-extras/settings-extras.html',
controller : 'SettingsExtrasCtrl'
})

发生的情况是,由“property.selected”之外的任何状态加载的 Controller 加载了几次。在“property.selected.settings.general”的情况下,SettingsGeneralCtrl 加载 28 次。如果我在该 Controller 和 console.log 中收听某个事件,则会记录 28 次。

知道为什么吗?我完全迷路了。

最佳答案

问题是我在那个级别有一堆未命名的用户界面 View 。由于 Controller 由 ui-view 调用,因此它加载了多次。

解决方案是命名 View 并使用 ui-view="viewName"调用它们。

关于javascript - AngularJS UI Router 多次加载同一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27822644/

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