嗨新手在AngularJs。
我想按联系人详细信息屏幕中的删除按钮。 紧接着,当按下删除按钮时, 我想返回主要联系人列表并刷新联系人列表。 (删除刚刚删除的联系人)。
现在暂时取消联系...但是如果我去运行功能
$state.go('contactLijst');
它将返回主页面...但是我仍然需要刷新页面!
这是我的控制器:
(function(){
"use strict";
angular
.module("lesAmis")
.controller("PersoonEditController",
["contact","$state",
PersoonEditController]);
function PersoonEditController(contact,people,$state){
var vm = this;
vm.people = people;
vm.contact = contact;
vm.delete = function(){
var id = vm.contact.id;
if (id) {
vm.contact.$delete({id:id}, function(data) {
toastr.success("OK, persoon verwijderd <br />" +
data.naam);});
$state.go('contactLijst');}
};
我的app.js
.state("persoonEdit", {
abstract: true,
url: "/personen/edit/:id",
templateUrl: "app/contacten/contactEditView.html",
controller: "PersoonEditController as vm",
resolve:{
contactResource: "contactResource",
contact: function(contactResource, $stateParams){
var id = $stateParams.id;
return contactResource.get({id: id}).$promise;
}
}
})
html中的按钮:
button class="btn btn-default"
style="width:70px;"
ng-click="vm.delete()">Verwijder
</button>
我想我需要刷新控制器。但没有任何工作。有什么建议吗?
答案 0 :(得分:1)
在您的控制器中,尝试移动
$state.go('contactLijst');
在函数(data){}函数内部。
只有在删除调用完成后,才会将您重定向回主页面。目前,控制器会触发删除Contact的请求,然后立即将您返回主页面(由于JavaScript的异步特性)。
希望这有帮助!
答案 1 :(得分:1)
得到了!! 改变了两件事!
首先:
(function(){
"use strict";
angular
.module("lesAmis")
.controller("PersoonEditController",
["contact","$state",
PersoonEditController]);
function PersoonEditController(contact,people,$state){
但是当然我对很多人都有一个参数! “人民”参数。
所以现在是:
(function(){
"use strict";
angular
.module("lesAmis")
.controller("PersoonEditController",
["contact","$state",
PersoonEditController]);
function PersoonEditController(contact, $state){
现在我的删除功能需要一个特殊命令!它是$state.reload();
这是我的新删除功能:
vm.delete = function(){
var id = vm.contact.id;
if (id) {
vm.contact.$delete({id:id}, function(data) {
$state.reload();
toastr.success("OK, persoon verwijderd");
$state.go('contactLijst');});
}};
解决了问题!
答案 2 :(得分:0)
使用JavaScript Array splice()方法。