我在 Angular JS 项目中的文件 (/static/models.json) 中获取了 json 数据..
{
"familyType": {
"A650": [{
"partID": "2630_H"
}, {
"partID": "2690_H"
}, {
"partID": "2680_H"
}, {
"partID": "2600_H"
}, {
"partID": "2620_H"
}, {
"partID": "2610_H"
}],
"S400": [{
"partID": "S500_Aru"
}, {
"partID": "S600_Aru"
}, {
"partID": "S700_Aru"
}, {
"partID": "S800_Aru"
}, {
"partID": "S900_Aru"
}, {
"partID": "S100_Aru"
}
]
}
}
我有以下函数,参数传递到该方法(Part_id1,Part_id2)和函数内部。我有两种系列类型(A650,S400),我需要检查是否两个输入的part_Id(Part_id1,Part_id2)是否属于同一系列(即A650或S400)
如果两个part_id(Part_id1,Part_id2)来自不同的家庭类型,我需要提醒用户... 我们如何遍历json文件并比较两种家庭类型中的part_ID..
$scope.ValidateModelList = function(Part_id1, Part_id2, $http) {
if ($scope.firTable.selectedRowsCount != 0) {
$http.get("/static/models.json")
.success(function(response) {
$scope.names = response;
});
// here i am storing json data in $scope.names object
// here i need to check that the part_ids with the family
}
}
请有人帮忙解决这个问题,我将非常感激......
提前非常感谢......
更新
function ValidateModel(partIDlist){
alert('2');
var data = stubdata; // Stubdata is actual json data mentioned above
var partIdResult = [];
for (var key in data.familyType) {
angular.forEach(data.familyType[key], function (object) {
angular.forEach(partIDlist, function (partId) {
if (partId == object.partID) {
partIdResult.push({
value: partId, family: key
});
}
});
});
}
for (var i = 0; i < partIdResult.length; i++) {
// alert(partIdResult.length);
//alert(partIdResult.family);
alert(JSON.stringify(partIdResult))
alert(partIdResult.family); // this is giving undefined value
alert(partIdResult[0].family);
if (partIdResult.family === partIdResult[0].family){
alert('yes');
alert("part_id's are same");
}
else if (partIdResult.family !== partIdResult[0].family) {
alert("part_id's not same");
}
}
}
这里我传递一个像这样的列表..
var partIDlist= ["S900_Aru", "S500_Aru", "2610_H"];
我收到alert(JSON.stringify(partIdResult)) partIdResult,如下所示
[{"value":"S900_Aru","family":"S400"},
{"value":"S500_Aru","family":"S400"},
{"value":"2610_H","family":"A650"}]
我应该得到这三个part_id不属于同一个模型..而不是这个我得到part_id属于同一个
您能帮忙解决这个问题吗...提前非常感谢...
最佳答案
不建议使用“First succes”,而是使用 .then。第二个数据存储在response.data下。
.then(function(response) {
var data = response.data;
var partId2Family = null, partId1Family = null;
for(var key in data.familyType){
angular.forEach(data.familyType[key], function(object){
if(Part_id1 == object.partID){
partId1Family = key;
}
if(Part_id2 == object.partID){
partId2Family = key;
}
})
}
if(partId1Family !== PartId2Family){
// warning
}
}
这应该可以解决问题。
编辑:数组版本
.then(function(response) {
var data = response.data;
var partIdResult = [];
for(var key in data.familyType){
angular.forEach(data.familyType[key], function(object){
angular.forEach(partIds, function(partId){
if(partId == object.partID){
partIdResult.push({value:partId, family:key});
}
});
})
}
for(var i = 1; i < partIdResult.length; i++){
if(partIdResult[i].family !== partIdResult[0].family){
//error
}
}
}
关于javascript - 使用 Angular Js 和 javascript 对输入值进行 json 数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647089/