gpt4 book ai didi

angularjs - 使用工厂时,错误事件在Angular中会去哪里?

转载 作者:行者123 更新时间:2023-12-03 08:32:56 25 4
gpt4 key购买 nike

我下面的代码正常工作,但是现在我需要为错误发生时创建处理程序,但不确定如何插入该错误。是否将它放在main方法的工厂中?

MsaApp.factory('Msa', function ($resource) {
return $resource('/api/Place/:id', { id: '@id' }, { update: { method: 'PUT' } });

});
 $scope.delete = function () {
debugger;
var id = this.msa.PlaceId;
Msa.delete({ id: id }, function () {
$('#todo_' + id).fadeOut();
});
}

编辑1:
 $scope.delete = function () {
debugger;

// var id = this.msa.PlaceId;

var config = {
method: 'PUT',
url: 'api/Place/:id',
data: { 'some': 'data' }
}

$http(config)
.success(function (data, status, headers, config) {
console.log(data);
})
.error(function (data, status, headers, config) {
console.log(data);
});


//Msa.delete({ id: id }, function () {
// $('#todo_' + id).fadeOut();
//});
}

最佳答案

首先,我会建议将所有DOM操作移至指令,然后让 Controller 执行其应做的事情。

并回答您的问题(希望我理解正确):

MsaApp.factory('Msa',['$http', function(http) {
return {

delete: function(someData) {

var config = {
method: 'PUT',
url: '/api/Place/:id',
data : someData
};

http(config)
.success(function(data, status, headers, config) {

console.log(data);

})
.error(function(data, status, headers, config) {
console.log(data);
});



}}

};
}])

MsaApp.controller('ControllerName', ['$scope', 'Msa', function(scope, Msa) {

$scope.delete = function({ id: id }) {
debugger;
Msa.delete({ id: id });
$('#todo_' + id).fadeOut();
};

}])

如果您的工厂无法访问 Controller 范围,而您想返回,例如返回给 Controller 的消息,则需要使用一个Promise,在此处进行说明:
http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/

关于angularjs - 使用工厂时,错误事件在Angular中会去哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409643/

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