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

MRB*_*MRB 33 javascript hidden-field angularjs

我有以下表格:

<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>
Run Code Online (Sandbox Code Playgroud)

我得到record.fileNorecord.madeSadNoSaveRecord功能,但我不明白record.usersId,并record.userNameIdSaveRecord功能.

我哪里弄错了?

隐藏输入的值是正确的.

Cod*_*nja 40

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

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

function SaveRecord(){
  $scope.record.usersId = $scope.user.userId;
  $scope.record.userNameId = $scope.user.userNameId;
  http.post(url, $scope.record);
}
Run Code Online (Sandbox Code Playgroud)

作为旁注,您在调用函数时无需提及变量:

<button ng-disabled="!frmInput.$valid" ng-click="saveRecord()">Accept</button>
Run Code Online (Sandbox Code Playgroud)

  • 我不知道这是否是一个准确的陈述.."隐藏变量不是角度方式"..如果我有一个授权模式,并且根据用户进入网站,隐藏的输入是什么决定了这个值?我宁愿不在我的javascript中做任何授权,但让我的视图处理它. (2认同)

小智 22

你可以使用这样的东西:

<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个。当然,使用隐藏字段不是必需的,因为我可以从范围填充目录....但是当一个页面和所有其他表单变量来自表单元素时...隐藏字段有助于保持代码干净和一致 (2认同)