gpt4 book ai didi

javascript - 如何在 AngularJS 中删除项目后重新加载状态?

转载 作者:行者123 更新时间:2023-11-27 22:31:21 25 4
gpt4 key购买 nike

在我的项目中,单击删除按钮时,我调用一个函数,并在该函数中使用删除方法调用 api。从项目列表中成功删除项目后,我正在重新加载状态。这里的问题是,我在 URL 中传递项目 ID。因此,删除项目后,项目 id 仍然存在于 url 中,因为为什么在状态重新加载时,已删除的项目 id 已存在于 url 中,但会重新加载,其中没有任何值。

下面给出代码,以便更好地理解代码。

调查.html

   <ul class="sidebar-nav">
<li class="sidebar-brand" >
<a>
Projects
</a>
</li>
<li ng-repeat="obj in allProjects track by $id(obj)">
<a ui-sref="survey.surveyList({id: obj.ProjectID})" ng-click="getProjSurveys(obj.ProjectID)" ui-sref-active="activeProject" ng-init="getReloadProjSurveys()">{{obj.ProjectName}}<span class="projectsetting" ng-click="sendProjectID(obj.ProjectID)"><img src="./images/settings.png"/></span></a>
</li>
</ul>
<div class="surveyContainer" ui-view></div>

index.js(使用 UI 路由)

   .state('survey', {
url: '/survey',
views:{
header:{
templateUrl: 'common/headerTool.html',
controller: 'headerController'
},
pageContent:{
templateUrl: 'survey/survey.html',
controller: 'surveyController'
},
footer:{
templateUrl: 'common/innerFooter.html',
controller: 'footerController'
}
}
}).state('survey.surveyList', {
url: '/:id',
templateUrl: 'survey/surveyList.html',
controller: ''
});

popup.html这是显示删除确认弹出窗口的位置

  <div class="modal fade" id="deleteProject" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<p class="text-center">Are you sure you want to delete this project</p>
</div>
<div class="modal-footer">
<div class="col-md-6 text-right"><span type="button" class="cancel" data-dismiss="modal">Cancel</span></div>
<div class="col-md-offset-1 col-md-5 text-left"><span type="button" class="success" value="Delete" ng-click="projectDelete()" >Delete</span></div>
</div>
</div>

单击此按钮后,将调用此 Controller 内的 projectDelete()

surveyController.js

  $scope.sendProjectID = function(ProjectID){
$scope.ProjectID = ProjectID;
};
$scope.projectDelete = function($event){
$("#deleteProject").hide();
UserService.DeleteProject($scope.ProjectID).then(
function( data ) {
console.log(data);
state.reload();
//$state.go('survey.surveyList',{id: 0});
$("#deleteProject").modal("hide");
});
};

我尝试使用 state.reload()$state.go('survey.surveyList',{id: 0});。 id=0 的 $state.go() 是我想要重新加载的默认值。

最佳答案

您尝试过这个 $state.go('survey.surveyList',{id: 0}, {reload : true}); 吗?

引用: https://github.com/angular-ui/ui-router/wiki/quick-reference#toparams

关于javascript - 如何在 AngularJS 中删除项目后重新加载状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39546992/

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