gpt4 book ai didi

javascript - 如何对 ui-router 状态进行 onEnter 单元测试和解析

转载 作者:行者123 更新时间:2023-12-03 11:01:01 24 4
gpt4 key购买 nike

我正在尝试测试从以下状态的 onEnter 调用的 Angular UI Bootstrap 模式:

.state("profile.index.edit.services", {
url: "/edit/services/:serviceCode",
parent:"profile.index",
onEnter: ['$stateParams', '$state', '$modal',function($stateParams, $state, $modal) {
$modal.open({
templateUrl: 'profile/edit-services-modal.html',
controller: 'ProfileEditServicesController',
resolve: {
profileData: function(CacheService){
return CacheService.getItem(CacheService.Items.Profile.loadedProfile);
},
allServicesList: function(ProfileService){
return ProfileService.getAllServicesList($stateParams.serviceCode,$stateParams.orgId);
},
serviceCode: function() {
return $stateParams.serviceCode;
}
}
}).result.then(function(result) {
if (result) {
return $state.transitionTo("profile.index", { orgId: $stateParams.orgId });
}
else { // cancel
return $state.transitionTo("profile.index", { orgId: $stateParams.orgId }); // don't reload
}
}, function () {
// executes on close/cancel/ESC
return $state.transitionTo("profile.index", { orgId: $stateParams.orgId });
});
}]
})

我一直在努力尝试许多不同的方法来设置测试,但似乎无法弄清楚。非常感谢任何笨蛋或建议!!!!

顺便说一句,上面的状态是这些状态的后代,我已经能够为该传递编写测试:

.state('profile.index', {
url: '/:orgId',
views: {
'profile-index@profile': {
templateUrl: 'profile/view-profile.html',
controller: 'ProfileController'
},
'header@': {
templateUrl: 'common/layout/header.html',
controller: 'HeaderController'
},
'footer@':{
templateUrl: 'common/layout/footer.html',
controller: 'FooterController'
}
},
resolve: {
profileData: function(ProfileService, $stateParams){
return ProfileService.getProfile($stateParams.orgId, true);
}
}
})
.state('profile.index.edit', {
url: '',
abstract: true
})

最佳答案

你有没有弄清楚这一点?您应该传递一个命名 Controller ,这样您就可以直接测试该 Controller (因为它只是一个函数),而不是依赖于 onEnter 被触发。

关于javascript - 如何对 ui-router 状态进行 onEnter 单元测试和解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093575/

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