@observable是否必须在每个领域使用?

时间:2013-05-06 06:14:40

标签: dart dart-webui

我注意到如果我在任何web ui代码中都不使用@observable所有字段/成员更改都会使用数据绑定语法自动获取。

我遇到的问题是在扩展WebComponent并应用@observable注释的类中选择一个字段时,现在其他字段无法正确绑定并显示更改。

这是一个已知问题还是功能正常?

如果我使用@observable一次注释,我应该将它应用于所有字段吗?

3 个答案:

答案 0 :(得分:4)

正如另一篇文章所述,您可以选择使用@observable标记一个类。

你现在陷入了可观察者和观察者之间。看守(和派遣)是旧的方式,很快就会被逐步淘汰。可观察量是新的方式。为了不打破老客户,我们让观察者进入。如果您使用了至少一个@observable,那么观察者系统将被禁用。

新的MDV v2实现正在准备中。我建议您使用@observable来查看您想要的任何内容。到处停止使用dispatch()。另外,停止使用可观察的顶级字段,因为它们不能绑定到节点中。

道歉,事情确实处于不稳定状态。我怀疑事情会很快解决。

我建议您在此处阅读有关MDV v2的更多信息:https://github.com/toolkitchen/mdv/blob/stable/README.md以便为更改做好准备。

我怀疑@observable将继续是一个选项,所以现在继续使用它是可以的。

答案 1 :(得分:3)

documentation here来看,这似乎是我设计的。 @observable的目标是将该成员标记为绑定有趣,与其他成员不同。

如果您不想单独注释每个字段,也可以使用@observable对类本身进行注释:Marking a class as @observable is the same as marking all of its fields as @observable

答案 2 :(得分:1)

今天,我对@observable做了一个很好的发现:如果您在组件的dart代码之外更改观察值(使用query("#component_id").xtag),则该字段需要标记为@observable - 否则,组件将不会注意到值的更改。

或者,在更改值后,可以调用dispatch()。我目前正在测试什么更快,但我认为它可能是注释。

这不是问题的直接答案,但在决定使用注释或不使用注释时可能值得考虑这一点。