如何在dart语言中观察简单变量
我的问题是:如何观察字符串或num等简单变量的变化? 我知道你可以很容易地观察到这样的物体:如何在dart语言中观察简单变量,dart,dart-webui,Dart,Dart Webui,我的问题是:如何观察字符串或num等简单变量的变化? 我知道你可以很容易地观察到这样的物体: observe(t, (e) => print ("Value changed")); 但是如何在简单变量上执行此操作?下面是一个绑定作为对象属性的字符串值的示例: 指数 名称为{{name} 导入'dart:html'; 进口“包装:聚合物/聚合物.dart”; 类Person使用ObservaleMixin扩展对象{ @可观察 字符串名; 人员(姓名); } main(){ 查询(“#
observe(t, (e) => print ("Value changed"));
但是如何在简单变量上执行此操作?下面是一个绑定作为对象属性的字符串值的示例:
指数
名称为{{name}
导入'dart:html';
进口“包装:聚合物/聚合物.dart”;
类Person使用ObservaleMixin扩展对象{
@可观察
字符串名;
人员(姓名);
}
main(){
查询(“##_模板”).model=newperson('Bob');
}
(此答案适用于Polymer.dart。)
observed
包包括单个可观察值的包装:observedbox
导入“包:观察/观察.dart”;
导入“dart:async”;
void main(){
ObservableBox myValue=新的ObservableBox(“你好”);
myValue.changes.listen((列出记录){
PropertyChangeRecord=记录[0]作为PropertyChangeRecord;
打印(“${record.field}已更改,现在为${myValue.value}”);
});
新定时器。周期性(常数持续时间(秒:1),(t){
myValue.value=new DateTime.now();
});
}
如果不使用ObservableBox,就无法观察顶级或函数范围单字符串、布尔值、int或double
如果字符串、布尔值、int或double是类的字段,则可以使用ObservableMixin
和@observable
注释
类Foo用observemyxin扩展对象{
@可观察的字符串条=“”;
}
然后,当Foo实例发生更改时,您可以收到通知:
foo.changes.listen((列出记录){
// ...
});
看起来当前(SDK 1.6)是名称而不是字段,以及oldValue和newValue。但是,名称是一个符号,因此record.name==“myProperty”不会计算。Hrm.So record.name==“myProperty”需要使用镜像转换为字符串。请参阅下面我的答案和代码。