当前位置: 首页 > 知识库问答 >
问题:

Angular 4-如何为type='input'呈现2位小数

别永年
2023-03-14

这个问题是关于当用户将数据输入Number类型的输入时限制/验证输入。

我的问题是,当模型第一次加载时,任何整数或1dp的数字都只能用1dp呈现。例40或40.0都显示为40.0(而不是40.00)。

(change)="setTwoNumberDecimal($event)"
  setTwoNumberDecimal($event) {
    $event.target.value = parseFloat($event.target.value).toFixed(2);
  }
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';

@Directive ({
  selector: '[fbDecimalFormat]'
})

export class DecimalFormatDirective {

  constructor(private el: ElementRef,
              private renderer: Renderer2) {
    //renderer.setAttribute(el, 'value', parseFloat(el.nativeElement.value).toFixed(2));
    this.el.nativeElement.value = parseFloat(this.el.nativeElement.value).toFixed(2);
  }

}

仅供参考,注释的呈现行不工作(错误:未识别setAttribute)-这是一个独立于平台的尝试。

所以问题是:我如何得到输入以2dps呈现其初始值?

共有1个答案

鱼志学
2023-03-14

模板表单

解决方案是使用内置的decimalpipe(奇怪地称为number),而不是对模型值-ie使用双向绑定。从[(ngModel)]到[ngModel]和(ngModelChange)

    <input type="number" step="0.01" 
            (change)="setTwoNumberDecimal($event)"
            (ngModelChange)="item.value=$event"
            [ngModelOptions]="{updateOn: 'blur'}"
            [ngModel]="setting.decimal_value | number:'1.2-2'">

有关拆分[()]绑定的更多信息,请参见此问题。

 <p>{{form.get('name').value | myPipe}}</p> 

但我认为正确的方法是使用值访问器。更多信息在这里。

 类似资料:
  • 问题内容: 与ListView不同,我们可以更新this.state.datasource。是否有任何方法或示例更新FlatList或重新呈现它? 我的目标是在用户按下按钮时更新文本值。 问题答案: 使用FlatList组件上的属性。 如文档所述: 通过传递给我们,确保更改时将重新呈现自己。如果不设置此道具,就不会知道它需要重新渲染任何项目,因为它也是a ,并且道具比较不会显示任何更改。

  • 我需要添加日期到我的实体,让用户设置在web形式。默认情况下,此字段需要填写今天的日期。 显示为默认值设置的正确日期 显示没有任何值的日期选择器(注意:String startDate=“2016-08-01”;) 生成400个错误(错误请求)(注意:Date startDate=new Date();) null 我的控制器: 我的模板: 项目实体:

  • The file upload field is really hard to stylizing. The "Browse" button inaccessible to CSS manipulation. You can stylizing your input type='form' by this plugin. Idea: http://www.quirksmode.org/dom/inputfile.html

  • 我在我的nodejs应用程序中有一个订单模型,需要在其中实现订单中的产品数量。 我已经将产品类型添加为(new mongoose.schema)并通过Joi对其进行验证,在本例中,我只能添加一个产品 以下是订单模型 这允许我添加一个产品,但我需要添加多个产品在订单中

  • 问题内容: 我想显示: 如 和: 如 不管小数点的长度或是否有任何小数位,我都希望显示带有2个小数位的a,并且我想以一种有效的方式来做到这一点。目的是显示货币值。 例如, 问题答案: 我想您可能正在使用模块中的对象?(如果您需要精确到小数点后两位精确到两位数且任意大的数字,那么绝对应该如此,这就是您的问题标题所暗示的……) 如果是这样,文档的“ 十进制常见问题解答” 部分将包含一个问题/答案对,这