问题标签 [dirty-tracking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - c# 将类属性标记为脏
下面是一个简单的枚举示例,它定义了一个对象的状态和一个显示该枚举实现的类。
当用数据库中的数据填充类对象时,我们将枚举值设置为“clean”。为了将大部分逻辑排除在表示层之外,我们如何在属性更改时将枚举值设置为“脏”。
我在想一些类似的事情;
在类的每个属性的设置器中。
这听起来像一个好主意吗,是否有人对如何分配脏标志有更好的想法,而无需在表示层中这样做。
vb.net - 检查是否有任何控件已更改并在表单关闭时保存数据
我们正在使用 vb.net/dev express 工具。我们有几个控件文本框、组合等...而不是检查每个更改的值,我们想要遍历所有控件并检查是否已编辑任何内容,然后在表单关闭时保存。下面是我尝试完成的一些代码。问题是,虽然它在技术上有效......它使用递归 AddDirtyEvent(c) ,所以当我关闭表单并单击是保存时......由于多个控件它多次调用该消息框......如果我接受out ,它将无法工作并检测脏更改。我只是想知道我怎样才能让它以我想要的方式工作,或者是否有更简单的方法......
ember.js - ember.js 手动设置 hasDirtyAttributes 保存时不清除
我的模板中有一个保存按钮,当模型 hasDirtyAttributes 时激活
当对相关模型的引用发生更改时,似乎没有设置 hasDirtyAttributes 标志。
示例
我有一个下拉菜单,允许选择一个名为contact
的相关模型。
如果我更改任何直接属性(例如名称),一切都会按预期工作,并且保存按钮会激活。
当我更改联系人时,它不会,我认为这是设计使然,所以我在更改操作被触发时设置了标志。
我在我的路由操作中设置它,如下所示:
现在它又可以工作了。当我更改联系人时,保存按钮会亮起。
但是,当我现在单击保存时,hasDirtyAttributes 标志保持为真(按钮保持活动状态),而之前它被清除,直到进行另一次更改。
我希望框架在成功保存后自动重新设置标志,就像以前一样。我当然可以在按钮的保存操作上重新设置标志。
感觉就像我正在解决一个问题,也许 hasDirtyAttributes 不应该手动设置,或者我应该使用不同的肮脏指标。
我的问题:如何正确处理?
forms - 角 2++ | NgForm:Form.Dirty 总是脏的
确定 NgForm 看起来是否与任何用户输入之前完全一样
似乎
form.dirty
在更改后不会对其值进行编辑,并且form.touched
似乎总是false
无论如何:dirty
istouched
和touched
is tetched。
模板.html
组件.ts
在 TypeScript 中,我对处理程序进行去抖动ngModelChange
处理,以便 Angular 有机会form.dirty
在我检查它之前更改值。这是因为在对象被修改ngModelChange
之前被触发。NgForm
如果!estimate
, 因为estimate === ""
, 则将其设置回其原始值undefined
。在这种情况下,表单应该看起来与任何用户输入发生之前完全一样。
但是,当我在注释正上方的行上放置一个断点并输出form.dirty
到 时console
,NgForm 永远不会变dirty
回false
.
是否可以确定表单看起来是否与任何用户输入之前完全一样?
显然,我可以编写自己的脏逻辑,但这是否意味着那NgForm
是无用的?一定有什么我想念的,对吧?肮脏怎么可能不意味着肮脏?
我已经查看了其他一些 SO 问题——第一个类似但绝对不是我要问的问题。他们在问这是否是故意的——我不在乎;我想知道如何实现上述目标。
关闭,但没有雪茄:grails - Grails 3.1.1 - 当模型类扩展另一个 groovy 类时,脏检查不起作用
我有一个域类,它扩展了另一个具有相同名称但在不同库中的不同包中的 groovy 类。
问题是当我修改域类上的实例时,它没有被标记为脏,因此不会保留更改。
我读过 grails 3 版本对脏检查有一些增强,这可能是一个错误或者我遗漏了一些东西。
新对象被正确保存,没有任何问题,我在修改的域对象以及修改的属性上使用了 isDirty()方法,并且都返回false。对象附加到会话,通过isAttached()确认。
为了重现,我使用以下代码创建了一个测试项目,并尝试从使用脚手架生成的默认 grails 视图更新对象,但仍然没有保留更改。
注意:我在 Grails 2.4 中做过类似的事情,它曾经可以工作。
域类如下:
src/main/groovy 中的基类:
控制器
链接到 github项目。
问题:模型未标记为脏,即使它已被修改。当模型类扩展另一个 groovy 类时,就会发生这种情况。
如何重现:
- 运行应用程序。
- 创建一个新的模型对象(模型名称为 Derived)
- 使用编辑视图修改对象并单击更新。
- 您将看到修改没有持久化。