gpt4 book ai didi

javascript - 如何从 Angular 工厂返回 bool 值

转载 作者:行者123 更新时间:2023-11-28 19:02:34 24 4
gpt4 key购买 nike

我编写了一个通用的 CRUD 工厂,到目前为止,它被证明相当有用,唯一的问题是,当我去使用该服务并检查结果时,该值没有保留 bool 值 true。我相信这是因为 javascript return 是基于每个函数的,但我不确定如何正确地处理 bool 值。有什么想法吗?

module.factory('crud', function ($http, API_CONFIG) {
return {
delete: function ($index, $scope, id, collection) {
$http({
url: API_CONFIG.url + collection + "/" + id,
method: 'DELETE',
headers: { "Content-Type": "application/json;charset=utf-8" }
}).success(function (result) {
console.log(result);
$scope.countries.splice($index, 1);
return true;
}).error(function () {
console.log("error");
});
},
update: function ($index, $scope, id, collection) {
console.log("update");
console.log(id);
console.log(collection);
},
create :function(model, collection) {
$http.post(
API_CONFIG.url + collection,
JSON.stringify(model),
{
headers: {
'Content-Type': 'application/json'
}
}
).success(function (data) {
console.log("model sent");
return true;
}).error(function () {
console.log("error");
});;
}
};
});

module.run(function ($rootScope, crud) {
$rootScope.appData = crud;
});

然后在 Controller 中像这样使用:

var result = $scope.appData.create(country, "collection");
if (result === true) {

最佳答案

您正在异步回调函数中使用 return。因此之后执行的代码也应该是异步的。尝试向 create 传递一个附加函数,该函数将在成功时执行。例如:

create: function(model, collection, callback) {
$http.post(...)
.success(function(data) { callback(data, true); })
.error(function(data) { callback(data, false); });
}

然后您可以这样使用:

appData.create(model, collection, function(data, success) {
if(success === true) {
...
} else {
...
}
}

关于javascript - 如何从 Angular 工厂返回 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32257628/

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