【问题标题】:Bind hidden inputs to model in angular将隐藏输入绑定到角度模型
【发布时间】:2013-12-14 01:41:17
【问题描述】:

我有以下表格:

<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>

我在SaveRecord 函数中得到record.fileNorecord.madeSadNo,但在SaveRecord 函数中没有得到record.usersIdrecord.userNameId

我在哪里犯错了?

隐藏输入的值是正确的。

【问题讨论】:

    标签: javascript angularjs hidden-field


    【解决方案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>
    

    【讨论】:

    • 是的,最后我用类似的方法做到了
    • 我不知道这是否是一个准确的说法..“隐藏变量不是角度方式”..如果我有一个授权模式,并且取决于进入网站的用户,隐藏的输入是什么决定了这个价值?我宁愿不在我的 javascript 中做任何授权,而是让我的视图来处理它。
    【解决方案2】:

    你可以这样使用:

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

    【讨论】:

    • 我喜欢这个。当然不需要使用隐藏字段,因为我可以从范围中填充目录....但是当一个页面和所有其他表单变量来自表单元素时...隐藏字段有助于保持代码的干净和一致
    • ng-init 是关键,我不想填充控制器/服务中的字段,因为这无助于可重用性。就我而言,我在两个地方使用了提交函数,一个是所有数据都来自表单的地方,那么为什么要让这个函数变得丑陋呢? :)
    【解决方案3】:

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

    就用这个吧:

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

    【讨论】:

    • 但我想得到usersIduserNameId 作为record 参数的字段SaveRecord(record)
    • 您的解决方案确实绑定到模型
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多