J'ai la forme suivante:
<form name="frmInput">
<input type="hidden" ng-model="record.usersId" value="{{user.userId}}"/>
<input type="hidden" ng-model="record.userNameId" value="{{user.userNameId}}"/>
<label for="fileNo">AccountId</label>
<input id="fileNo" ng-model="record.fileNo" required/>
<label for="madeSad">MadeSad</label>
<input id="madeSad" ng-model="record.madeSadNo" required/>
<button ng-disabled="!frmInput.$valid" ng-click="SaveRecord(record)">Accept</button>
</form>
Je reçois record.fileNo
et record.madeSadNo
dans SaveRecord
mais je n'obtiens pas record.usersId
et record.userNameId
dans SaveRecord
fonction.
Où est-ce que je me trompe?
les valeurs des entrées cachées sont correctes.
Avoir des champs de formulaire masqués n'est pas la Angular. Vous n'avez pas du tout besoin de champs masqués, car toutes les variables de portée (qui ne sont pas dans le formulaire) peuvent être considérées comme des variables masquées.
Quant à la solution, lors de la soumission du formulaire, il suffit de remplir l'objet 'record' avec 'user':
function SaveRecord(){
$scope.record.usersId = $scope.user.userId;
$scope.record.userNameId = $scope.user.userNameId;
http.post(url, $scope.record);
}
En remarque, vous n'avez pas besoin de mentionner votre variable lors de l'appel de la fonction:
<button ng-disabled="!frmInput.$valid" ng-click="saveRecord()">Accept</button>
Vous pouvez utiliser quelque chose comme ceci:
<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>
Le champ masqué ne prend pas en charge la double liaison.
Utilisez simplement ceci:
<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}}
<input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}