私は次のフォームを持っています:
<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
in SaveRecord
関数ですが、record.usersId
およびrecord.userNameId
in SaveRecord
関数。
どこで間違いを犯していますか?
非表示入力の値は正しいです。
非表示のフォームフィールドを持つことはAngularの方法ではありません。すべてのスコープ変数(フォームにない)は非表示変数として取得できるため、非表示フィールドはまったく必要ありません。
ソリューションについては、フォームを送信するときに、オブジェクト「record」に「user」を入力するだけです。
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>
次のようなものを使用できます。
<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>
非表示フィールドは二重バインディングをサポートしていません。
これを使用するだけです:
<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}}
<input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}