0
私は1つのselect
フィールドと1つの 'input'フィールドを持っています。両方のフィールドでデータベースからデータを取得しています。
選択したオプションは、デフォルトでdb値に基づいてチェックされます。ドロップダウンオプションを変更すると、balance
フィールドに自動入力されます。
私の問題は、balance
ドロップダウンを変更するとフィールド値が自動的に入力されることです。しかし、デフォルトでは、バランスフィールドの値は選択されたオプションのために自動的に設定されません。
ここで何が間違っていますか?
HTML:ng-modelを使用したng-initへのバインド値
<form ng-app="myApp" ng-controller="myCtrl" ng-repeat="data in leaveDetails">
<div>
<label>Leave Type</label>
<select type="text" ng-model="selectedName" ng-init="selectedName=data.LeavetypeId" ng-options="data.id as data.Name for data in leaveTypes" ng-change="leaveBalance(selectedName)"></select>
</div>
<div>
<label>Availabe Leaves</label>
<input type="text" ng-init="balanceCount=data.Balance" ng-model="balanceCount">
</div>
</form>
スクリプト:
<script>
var app=angular
.module('myApp', [])
.controller('myCtrl', function ($scope, $http) {
$scope.init = function() {
$scope.loadEditLevDetails();
}
$scope.loadEditLevDetails = function (id) {
$scope.Id = { leaveRequestId: id };
var requestHeaders = {
'content-type': 'application/json'
}
var httpRequest = {
method: 'post',
url: "/user/details",
headers: requestHeaders,
data: $scope.Id
}
$http(httpRequest).then(function (response) {
$scope.leaveDetails = response.data;
})
}
$scope.leaveBalance = function (selectedvalue) {
$scope.leaveTypeId = { leaveTypeId: selectedvalue };
var requestHeaders = {
"content-type": 'application/json'
}
var httpRequest = {
method: 'POST',
url: '/user/balanceCount',
headers: requestHeaders,
data: $scope.leaveTypeId
}
$http(httpRequest).then(function (response) {
$scope.noOfValues = response.data;
$scope.balanceCount = $scope.noOfValues[0].balance_count;
})
}
})
</script>