You don't need ng-value since you already using ng-model
<div ng-repeat="cityobj in cityData" class="tabledata">
<input type="text ng-model="cityobj.temp.humidity">
<div>
and then it should work
console.log("The value in textfield is",$scope.cityData[passindex].cityobj.temp.humidity");
DEMO
var app =angular.module('testApp',[]);
app.controller('testCtrl',function($scope){
$scope.cityData = [{
"city": "Klimovsk",
"temp": {
"humidity":2
}
}, {
"city": "Shalakusha",
"temp": {
"humidity":5
}
}];
$scope.print =function(cityObj){
console.log(cityObj.temp.humidity);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="testApp" ng-controller="testCtrl">
<div ng-repeat="cityobj in cityData" class="tabledata">
<input type="text" ng-model="cityobj.temp.humidity">
<button ng-click=print(cityobj)>PRINT</button>
<div>
</body>