Привязать скрытые входы к модели в angular
У меня есть следующая форма:
<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>
Я получаю record.fileNo
и record.madeSadNo
в функции SaveRecord
, но я не получаю record.usersId
и record.userNameId
в SaveRecord
.
Где я делаю ошибку?
значения скрытых входов являются правильными.
Ответы
Ответ 1
Скрытые поля формы не являются Angular. Вам вообще не нужны скрытые поля, так как все переменные области видимости (которые не входят в форму) можно рассматривать как скрытые переменные.
Что касается решения, то при отправке формы просто заполните "запись" объекта "пользователем":
function SaveRecord(){
$scope.record.usersId = $scope.user.userId;
$scope.record.userNameId = $scope.user.userNameId;
http.post(url, $scope.record);
}
В качестве дополнительной заметки вам не нужно указывать вашу переменную при вызове функции:
<button ng-disabled="!frmInput.$valid" ng-click="saveRecord()">Accept</button>
Ответ 2
Вы можете использовать что-то вроде этого:
<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>
Ответ 3
Скрытое поле не поддерживает двойное связывание.
Просто используйте это:
<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}}
<input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}