问题标签 [dirty-data]

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.

0 投票
1 回答
491 浏览

angularjs - 如何以角度形式制作角度下拉控件(不是选择)?

我想在表单中使用下拉按钮而不是选择选项。我正在使用 Angular,问题是: 1. 下拉列表应显示选择的名称,但表单应提交其 Id 2. 对下拉列表的更改不会使表单变脏

我该如何解决这个问题?

0 投票
2 回答
1541 浏览

java - Java - 检测对象是否已更改/脏检测机制的框架

亲爱的,我目前正在实现一个使用大量第三方 Web 服务的 Java 客户端。为了获得性能,我只想在客户端的对象被修改(变脏)的情况下调用 webservices。

与其编写能够检测对象是否脏的自己的框架,是否存在任何可以重用且不绑定到其核心产品(例如休眠)的开放/通用框架?

0 投票
0 回答
117 浏览

javascript - AngularJS:非破坏性、非阻塞的表单提交

问题

假设我有一个包含多个输入的表单,这些输入绑定到视图数据对象的各种属性。当我标记(“模糊”)时,我想将该值保存到保存服务并继续到下一个字段进行编辑。此保存服务完整返回新保存的对象。如果我随后将更新的对象写入控制器的数据对象,我正在编辑的当前输入将丢失更改。

问题

ngFormController是否有使用我缺少的内置 Angular 解决方案?是否有任何库支持这一点而没有每个输入类型的场景?

我真的希望避免做类似的事情:

...然后必须将当前视图模型与传入的视图模型进行比较。

0 投票
0 回答
114 浏览

javascript - ember 数据关系和就绪/加载事件

在 ember data内置脏关系跟踪之前,我们推出了自己的。升级到 Ember/Ember Data 2.4.3(从相当旧的版本)后,我们的自定义解决方案停止工作。

问题归结为知道何时将记录的关系状态快照作为“原始”状态,我们可以将其与以后的状态进行比较。

假设适配器的有效负载包括以下内容:

ready结果记录的挂钩中,并使用新的引用 API,我希望能够说如下内容:

但这似乎不起作用——commentIds是一个空数组。

(请注意,观察该isLoaded属性似乎也没有给我想要的东西——记录已经处于事件触发loaded时的状态。)ready

基本上,我希望有一个relationshipsLoaded事件,当记录的关系已相对于适配器的有效负载填充时触发。根据从适配器返回的数据,相关记录本身可能不可用或不加载,但这不应该影响记录的关系状态。

经过一番探索后,我发现挂在商店的后备箱中会提供一些似乎有效的东西:

但这显然是粗略的,我不确定它是否真的保证了我希望它保证的东西。

那么:有没有真正的方法可以做到这一点?更好的方法?这是即将推出的功能吗?

作为参考,我做了一个 codepen 插图:https ://codepen.io/patternleaf/pen/Vazdxj

0 投票
2 回答
5800 浏览

vb.net - 检查选择/文本是否在表单中更改

我有一个表单,上面有大约 20 个控件(ComboBoxTextBox等),我已经预先加载了数据。这将显示给用户,并使他们能够更改任何字段。

我不知道识别变化已经发生的最佳方式。经过一番研究,我发现TextBox.TextChanged并设置了标志IsDirty = True或类似的东西。

我不认为这将是 100% 防弹的,因为用户可能会更改该值,然后返回并将其更改为最初加载时的状态。我一直在考虑保存当前数据.Tag,然后将其与.Text用户单击“取消”时输入的数据进行比较,以简单地询问他们是否要保存更改。

这是我的代码:

这是用户单击“取消”时的代码:

这是一种有效的方法吗?可以依靠吗?如果有人有更好的想法,我很想听听。

0 投票
1 回答
113 浏览

vb.net - 验证是否在 TabPage 中进行了任何更改

所以我想知道是否有人可以给我一个好主意如何做某事。我的应用程序中有一个 tabControl - 我加载了一个页面 - TabPage1 - 大约有 25-30 个字段。在加载所有数据时 - 我运行一个循环将每个控制值保存到 .tag。我还有一个名为 isDirty() 的函数,它基本上检查每个控件的 ctr.tag.tostring <> ctr.text。我很难弄清楚如何构建一个快速处理程序来检查表单上的所有控件。我尝试使用 TagPage1.Validating,但这并没有做任何事情。

我的 isDirty() 函数看起来像这样......

我希望能够将此功能插入某个地方并对其进行调用,例如

我必须在每个控件的选择更改时调用它吗?

0 投票
0 回答
264 浏览

javascript - AngularJs,将对象标记为脏

我有一些从 Web api 检索的对象,并且是“可编辑的”。当用户编辑一个对象时,他能够更改一些字段。我想isDirty在这些对象上维护一个字段,以了解它们何时被修改(isDirty==true)。

我想知道我是否可以依靠 AngularJs 更改检测机制在我的对象上设置此字段?

0 投票
2 回答
124 浏览

c# - 定义属性是否由视图加载或设置

我正在尝试使用 Catel 进行“肮脏”的实施。
我有一个视图模型,有一个[Model]属性和一些[ViewModelToModel]映射到它。
我添加了一个布尔成员_canGetDirty,当设置为true允许视图模型属性提示服务进行保存时。

所以我的逻辑是,如果模型属性更改,_canGetDirty设置为false,因此视图模型属性更改而不会变脏,并且当模型完成更改时,我们设置_canGetDirtytrue新的。

问题是模型属性的PropertyChanged事件在视图模型属性更改之前被调用,因此_canGetDirty总是正确的,并且每当我加载新模型时都会调用我的服务进行保存。

如何解决这个问题?


编辑:关于 Catel 在这种情况下如何工作的一些解释。

注册属性更改:

我们注册将通知更新的属性RegisterProperty

最后一个参数是注册属性发生变化时调用的回调函数。

自动更新模型的属性:

我们将属性设置为模型:

此类包含一些属性(Prop1、Prop2、Prop3)。Catel 允许我们通过将它们映射到 ViewModelToModel 来自动从视图模型更新它们:

0 投票
1 回答
37 浏览

javascript - 我可以避免使用 $scope 并让用户操作设置 AngularJS 脏位吗?

我在表单上有一个设置表(例如,复选框),用户可以添加和删除表行。 theForm.$dirty如果用户更改设置(例如,选中或取消选中复选框),但如果将行添加到表中或从表中删除,则不会设置。我在https://plnkr.co/edit/sOXFnZjpkrcExvxGsEVg有一个例子

我是一个相对较新的 Angular 开发人员,但我被警告说,$scope如果可以避免它,参考它不是最佳实践。我认为在这种情况下,我可以使控制器依赖于$scope然后调用$scope.theForm.$setDirty()修改表的函数。我不确定这是否是我唯一的办法,或者是否有更好的方法。

0 投票
1 回答
905 浏览

extjs - 除非更改值,否则避免网格单元变脏

除非更改值,否则如何避免网格单元格成为脏单元格,当我只是触摸时间单元格时,它会变成脏单元格,如何避免变脏,这是小提琴

这是我的网格

});