Css Dart语言:可观察

Css Dart语言:可观察,css,web-applications,dart,Css,Web Applications,Dart,我在一个HTML文件中有两个表行。单击第一行时,它将通过classes.addactive\u style更改其样式。如果单击第二行,我想清除第一行样式 我知道我可以写 querySelector("#first_row_div").classes.clear(); 。。。为了清除第一行类,然后重置其样式,但在更大的代码中,我认为observable是最合适的 我不知道observable是否适用于此。但是,如果有,我该怎么做 编辑/更新:我认为正确的问题是,当变量发生更改时,是否有任何方法可以

我在一个HTML文件中有两个表行。单击第一行时,它将通过classes.addactive\u style更改其样式。如果单击第二行,我想清除第一行样式

我知道我可以写

querySelector("#first_row_div").classes.clear(); 。。。为了清除第一行类,然后重置其样式,但在更大的代码中,我认为observable是最合适的

我不知道observable是否适用于此。但是,如果有,我该怎么做

编辑/更新:我认为正确的问题是,当变量发生更改时,是否有任何方法可以运行函数


谢谢你的帮助

您可以为字段创建一个getter/setter,并在setter中运行您的函数

类MyClass{ 字符串_cssClass; 字符串get cssClass=>\u cssClass; 将cssClassString设置为newClass{ _cssClass=newClass; 更新; } 无效更新域{ //在这里做重要的工作 } } 您可以使用扩展Observable的模型类。 在这里,您必须调用dirtyCheck对更改进行可观察的检查,并通知侦听器

Dart还提供ChangeNotifier mixin。在这里,不需要调用任何脏检查方法。进行更改时,将调用侦听器

我不久前在检查功能时编写了一个简单的示例

进口“包装:观察/观察.省道”; 类Notifiable使用ChangeNotifier扩展对象{ 字符串_输入=; @可反射 获取输入=>\u输入; @可反射 设置输入值{ _输入=notifyPropertyChangeinput,_输入,val+新建; } 应呈报{ this.changes.listenList record=>record.forEachprint; } } 类MyObservable扩展了Observable{ @可观察 字符串计数器=; 可观察的{ this.changes.listenList record=>record.forEachprint; } } 真空总管{ var x=新的可观察肌肉; x、 计数器=哈罗; 可观察的。dirtyCheck; 应呈报=新的应呈报; notifiable.input='xxx'; notifiable.input='yyy'; }
我不知道你所说的可观察是什么意思。在Polymer中,可以将元素的class属性绑定到elements类中的字段,并且可以在HTML标记中声明绑定。当值更改时,所有绑定属性将自动更新。您的用例非常简单,我不确定是否值得使用此技术。如果你使用聚合物,那情况就不同了。@GünterZöchbauer你是对的。这令人困惑。我已经更新了问题。