那一周,我得知我们可以在javascript中使用getter / setter。 因此,我尝试在当前代码中使用它。
现在,我的ViewModel注册到Model,以便在Model更改时得到通知。
使用吸气剂,我可以得到它的RID并简单地将模型中字段的值返回给viewModel。
例如:
Model = {
field: aValue
}
ViewModel = {}
Object.defineProperty(ViewModel , aField{
get: function () {
return Model.field;
});
}
});
我是对的吗?可以吗?
答案 0 :(得分:0)
SynchroDynamic很好地说明了代码的可读性以及系统开发过程中可能出现的复杂性。
大概您正在使用某种提供数据绑定机制的框架。数据绑定通常是基于更改事件的自动过程。对于双向绑定,如果数据发生更改,并且绑定对的 source 和 target 和 source 和 target < / strong>还必须对这些事件做出响应(通过注册它们),以便数据保持同步。
Am I right?
是的,您可以(在可能的意义上)使用get / set等并禁用框架的数据绑定机制是正确的。
is it ok?
除了最琐碎的情况外,可能不是全部。
1)如果您使用的是支持数据绑定的框架,那么当可以使用一种完善的(有文档证明的)机制时,您的代码的其他读者将会对为什么采用这种方法感到困惑。
2)正如SynchroDynamic所指出的那样,当视图和viewModel的数量增加时,事情将很快失去控制,您将不得不手动跟踪获取/设置。
3)单元测试也可能变得更加复杂!