2013-05-06 33 views
4

我注意到,如果我没有在我的任何web ui代码中使用@observable,那么所有字段/成员更改都将自动采用数据绑定语法。是否必须在每个字段上使用@observable?

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

这是已知问题还是正确的功能?

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

回答

4

正如另一篇文章中提到的,您可以选择使用@observable来标记类。

你目前被观察对象和观察者之间夹在中间。观察者(和派遣)是旧的方式,即将被淘汰。可观察物是新的方法。为了不破坏老客户,我们让观察人员进来。如果您至少使用了一个@observable,则观察者系统被禁用。

新的MDV v2实现正在准备中。我建议你使用@observable作任何你想观察的东西。无处不在使用dispatch()。此外,请停止使用可观察的顶级域,因为它们不会绑定到节点中。

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

我建议您阅读关于MDV v2的更多信息:https://github.com/toolkitchen/mdv/blob/stable/README.md准备好进行更改。

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

+0

感谢您的回答。我试图通过注释类将所有Web组件类移动到@observable。这条路线没有成功。我为应用程序结构使用了MVVM类型的模式,不确定这种额外的间接级别是否会导致可观察的失败。打算制作一个较小的样本来尝试和重现。 – 2013-05-07 06:19:13

+0

如果观察者不赞成,那么生成的样本不应该使用'@ observable'来替代吗?事实上,说实话有点混乱。 – MarioP 2013-05-07 08:32:10

+0

@MarioP它确实令人困惑,一旦MDV v2的东西落地,我们将清理所有的文档。对不起,这段时间的二元性。 – 2013-05-08 03:53:42

3

documentation here,这似乎是我的设计。 @observable的目标是将该成员标记为有约束力的绑定,而不像其他人。

你也可以注释类本身@observable如果你不想标注每个单独的领域:Marking a class as @observable is the same as marking all of its fields as @observable

1

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

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

这不是对问题的直接回答,但在决定使用注释还是不使用时,可能需要考虑这一点。

+0

谢谢,我尽量避免必须手动调度。在特定情况下,我正在处理这可能是合适的。 – 2013-05-07 01:44:54

相关问题