防止输入更改导致表单变脏(Angular 5.2)

时间:2018-03-03 01:04:07

标签: angular angular-forms dirty-data

是否有一种简单的方法可以防止输入控件弄脏其父窗体? 我可以通过构建一个没有controlValueAccessor的自定义标签来实现,但我想知道是否有更简单的方法。

在我的一个表单中间,我有一个输入,它在一个按钮旁边输入一个数字。输入只是指定我想要添加到一组事物中的特定类型项目的数量。您指定与表单是否应被视为脏的无关的输入,因为在单击添加按钮之前表单没有“更改”,此时将一堆项添加到集中并传播更改从那里。

1 个答案:

答案 0 :(得分:2)

如果您使用的是模板驱动表单,则可以使用

intervals = [[0,30], [20,55], [45,80], [75,100]]
values = [25, 51, 53, 83, 91]

maplist = []
for i in intervals:
    inrange = []
    for v in values:
        if v >= i[0] and v <= i[1]:
            inrange.append(v)
    maplist.append(inrange)

print(maplist)

这是针对您的方案专门定义的。来自文档:

  

standalone:默认为false。如果将此值设置为true,则为ngModel   不会以其父表格注册自己,并将表现得好像是   不在形式。如果您有表单元控件,这可能很方便,   a.k.a.表单元素嵌套在控制显示的标记中   的形式,但不包含表格数据。