Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在AngularJS的传统表单post中提交$modelValue而不是$viewValue_Html_Angularjs_Forms_Http Post_Masking - Fatal编程技术网

Html 在AngularJS的传统表单post中提交$modelValue而不是$viewValue

Html 在AngularJS的传统表单post中提交$modelValue而不是$viewValue,html,angularjs,forms,http-post,masking,Html,Angularjs,Forms,Http Post,Masking,在AngularJS 1.4.9中,我使用一个命令强制输入字段调整为固定的十进制格式(取决于区域设置) 这是我的代码: <div ng-app="MyApp"> <div ng-controller="MyCtrl"> <form action="http://httpbin.org/post" method="post" name='myForm'> <input type="text" name="am

在AngularJS 1.4.9中,我使用一个命令强制输入字段调整为固定的十进制格式(取决于区域设置)

这是我的代码:

<div ng-app="MyApp">
    <div ng-controller="MyCtrl">
        <form action="http://httpbin.org/post" method="post" name='myForm'>
            <input type="text" name="amount" ui-number-mask="2" ng-model="debit.amount">
            <input type='submit'>
        </form>
    </div>
</div>
而不是

{ 
    "form": {
        "amount": "1299.99", 
    },
} 
我相信这是因为它提交了
$viewValue
,而不是
$modelValue

我尝试过的变通方法

  • 使用隐藏字段并将
    属性设置为模型值:

    <input type='hidden' name="amount_hidden" value="{{debit.amount}}">         
    
    
    
    这是可行的,但复制字段有点麻烦。看

  • 使用AngularJS'
    $http.post()
    提交,以模拟传统表单post。这也行得通,但它比以前的更麻烦。看


  • 是否有更简单的方法强制提交
    $modelValue

    当您提交传统表单时,不会涉及angular,因此不会查看模型值。我认为ng submit是使用angular提交表格的正确方式。你为什么认为它很笨重?@NMittal是对的。传统表单submit接受输入上“value”属性中存储的任何值。因此,
    $viewValue
    是您请求中反映的内容。另一种解决方案是在输入上放置一个元素,显示
    $modelValue
    ,而不是
    $viewValue
    。虽然它仍然是字段的副本,但您可以停止向服务器发送数据的副本。从可见输入字段中删除name属性。请看@NMittal angular确实参与其中。这就是在
    输入
    字段中忽略
    属性的原因。我认为这很麻烦,因为为了能够复制一个简单的post操作,您必须编写和维护大量代码。@SeanLarkin如果它包含
    VALUE
    属性的内容,那么通过设置此字段可以轻松解决问题。但是,
    输入
    字段中会完全忽略此属性。
    <input type='hidden' name="amount_hidden" value="{{debit.amount}}">