gpt4 book ai didi

javascript - Angular js 验证来自服务器的 JSON

转载 作者:行者123 更新时间:2023-12-03 10:09:36 27 4
gpt4 key购买 nike

据我了解,Angular http 有 2 个检查“成功”和“错误”。这取决于是否连接到服务 - 所以我手头有它,这是我的第一次检查。

我遇到的问题是 JSON 中的数据有一个成功状态,它会通知我它包含的数据或从我的表单收到的数据是否有任何问题,在这种情况下,我将出现一个错误对象打开并显示给用户。

我需要检查成功的值(value),但是检查成功的最佳位置在哪里?

我应该在 Controller 中执行此操作吗?

如果数据不正确,页面就没有其他事情可做,因此这实际上是检索数据后需要完成的第一件事。

这是基本的 Controller 布局

 app.controller("dataCtrl", function ($scope, $http) {

$http.post('/getdata').success(function (data) {

$scope.businessData = data;

// Should I then be checking businessData.success at this level?

}).error(function () {
alert("Problem");
});

});

最佳答案

你可以这样写:

$http.post('/getdata').success(function (data) {
if (validate(data)) {
$scope.businessData = data;
} else {
$scop.buisnessDataError = {msg: 'smth bad happend'};
}
}).error(function () {..})

否则,您可以以类似 Promise 的风格编写验证器,然后以这种方式链式 Promise:

$http.post('/getdata').then(function (res) {
return validator(null, res.data);
}, function (err) {
return validator({msg: 'error'})
}).then(function (data) {
//proceed your data
}, function (err) {
alert(err.msg);
});

验证器在哪里:

var varlidator = function (err, data) {
return $q(function (resolve, reject) {
if (/*data is not valid*/ || err) {
reject(err);
} else {
resolve(data);
}
});
}

$q 是 Promises 的标准 Angular 实现

关于javascript - Angular js 验证来自服务器的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30194025/

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