我对Angular相对较新,所以我不知道这是否是最好的解决方案。 但是这个状态/路由带有一个按钮,当点击这个函数时会被调用:
_this.foo = function () {
save();
$state.go("next");
}
问题是,当我使用相同的控制器进入下一个状态时,该功能仍在进行中,因此它将下一页保存到。这不是我想要的,我希望它保存第一个,然后去到下一个并停下来。
修改 我在列表中有多个表单,每个表单都有一个批准按钮和拒绝按钮。调用函数save()时,列表中的所有表单都会被批准并保存到后端。然后它重定向到下一页,但我的应用程序继续保存下一个表单列表。
我可以将一些参数传递给$ state.go来停止该功能吗?我不知道为什么会这样。
答案 0 :(得分:0)
在后端保存数据时的角度,应返回承诺。当这个承诺得到解决,那么我可以改变另一个国家。
_this.foo = function () {
save().then(function(){
//In this point the promise it's already resolved
$state.go("next");
});
}
可能的.save()
实施
function save(){
//where $http.post returns a promise
return $http.post('your_api/resource/:id');
}