将隐藏的输入绑定到角度模型

时间:2013-11-28 06:15:18

标签: javascript angularjs hidden-field

我有以下表格:

<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.madeSadNoSaveRecord但我在record.usersId函数中没有record.userNameIdSaveRecord

我在哪里弄错了?

隐藏输入的值是正确的。

3 个答案:

答案 0 :(得分:40)

隐藏表单字段不是Angular方式。您根本不需要隐藏字段,因为所有范围变量(不在表单中)都可以作为隐藏变量。

至于解决方案,在提交表单时,只需用'user'填充对象'record':

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>

答案 1 :(得分:22)

您可以使用以下内容:

<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>

答案 2 :(得分:3)

隐藏字段不支持双重绑定。

请使用:

<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}}
<input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}