【发布时间】:2012-06-16 19:47:42
【问题描述】:
我有一个丰富的基于 AJAX 的 Web 应用程序,它使用 JQuery + Knockout。我有一个 JQuery 插件,它包装了我的 Knockout 视图模型,以公开 .reset()、.isDirty() 等实用方法。
我有一个名为 .setBaseline() 的方法,该方法本质上是在填充数据模型后(通过映射插件)获取数据模型的快照。然后我可以使用这个快照来快速确定模型是否发生了变化。
我正在寻找的是某种通用函数,它可以返回一个对象,该对象代表两个 JavaScript 对象之间的差异,其中一个对象是被认为是主人。
例如,假设这是我的快照:
var snapShot = {
name: "Joe",
address: "123 Main Street",
age: 30,
favoriteColorPriority: {
yellow: 1,
pink: 2,
blue: 3
}
};
然后假设实时数据如下所示:
var liveData = {
name: "Joseph",
address: "123 Main Street",
age: 30,
favoriteColorPriority: {
yellow: 1,
pink: 3,
blue: 2
}
};
我想要一个返回以下内容的 .getChanges(snapShot, liveData) 实用函数:
var differences = {
name: "Joseph",
favoriteColorPriority: {
pink: 3,
blue: 2
}
};
我希望 _.underscore 库 可能有类似的东西,但我找不到任何看起来像这样工作的东西。
【问题讨论】:
-
今天早上我看到了同样的问题。
-
聪明的头脑都一样! :-) 你有链接吗?
-
@epascarello stackoverflow.com/questions/11016857/… 也许?
-
谢谢。我正在查看该问题中的建议,看看是否有适合我的用例。到目前为止,该问题的作者还没有接受答案,所以我想让这个问题运行更长时间。
标签: javascript jquery json knockout.js underscore.js