var app = angular.module('JsonMapping', []);
app.controller('MainCtrl', function($scope) {
$scope.Model = {
Value: 10,
Result: 0,
ReferenceTable: [{"LI":85,"LS":null,"points":15},{"LI":84,"LS":85,"points":14},{"LI":83,"LS":84,"points":13},{"LI":82,"LS":83,"points":12},{"LI":81,"LS":82,"points":11},{"LI":80,"LS":81,"points":10},{"LI":78,"LS":80,"points":8},{"LI":76,"LS":78,"points":6},{"LI":74,"LS":76,"points":4},{"LI":72,"LS":74,"points":2},{"LI":70,"LS":72,"points":1},{"LI":null,"LS":70,"points":0}]
}
$scope.GetPointsForValue = function() {
var lowerLimit = 0, upperLimit = 0, points = 0.0;
for (var i = $scope.Model.ReferenceTable.length - 1; i >= 0; i--) {
lowerLimit = $scope.Model.ReferenceTable[i].LI;
upperLimit = $scope.Model.ReferenceTable[i].LS;
if(lowerLimit === null && parseFloat($scope.Model.Value) < upperLimit) {
$scope.Model.Result = $scope.Model.ReferenceTable[i].points;
break;
}else if (upperLimit === null && parseFloat($scope.Model.Value) >= lowerLimit) {
$scope.Model.Result = $scope.Model.ReferenceTable[i].points;
break;
}else if (upperLimit > parseFloat($scope.Model.Value) && parseFloat($scope.Model.Value) >= lowerLimit){
$scope.Model.Result = $scope.Model.ReferenceTable[i].points;
break;
}
}
};
});
<!DOCTYPE html>
<html ng-app="JsonMapping">
<head>
<meta charset="utf-8" />
<title>Map value to Json Array</title>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<script data-require="[email protected]" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js" data-semver="1.5.11"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<input type="number" ng-model="Model.Value" ng-change="GetPointsForValue()">
<p>Points for value = {{Model.Result}}
</body>
</html>
포스트 자바 스크립트 기능. –
"value is> = 5.00 return 0"이 명령문의 값은 무엇입니까? –
아직 어떤 기능도 만들지 않았습니다. 내가 자바 스크립트에서 조회 기능을 사용하여 몇 가지 검색을 해본 적이 있지만 대부분의 예제는 직접 매핑의 경우입니다. @Rupinder, 예 : FunctionName (value, jsonArray)과 같은 프로토 타입을 위에 정의 된 배열과 함께 사용하면 FunctionName (3.5, jsonArray) 결과가 4가됩니다. –