Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在dart语言中观察简单变量_Dart_Dart Webui - Fatal编程技术网

如何在dart语言中观察简单变量

如何在dart语言中观察简单变量,dart,dart-webui,Dart,Dart Webui,我的问题是:如何观察字符串或num等简单变量的变化? 我知道你可以很容易地观察到这样的物体: observe(t, (e) => print ("Value changed")); 但是如何在简单变量上执行此操作?下面是一个绑定作为对象属性的字符串值的示例: 指数 名称为{{name} 导入'dart:html'; 进口“包装:聚合物/聚合物.dart”; 类Person使用ObservaleMixin扩展对象{ @可观察 字符串名; 人员(姓名); } main(){ 查询(“#

我的问题是:如何观察字符串或num等简单变量的变化? 我知道你可以很容易地观察到这样的物体:

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”需要使用镜像转换为字符串。请参阅下面我的答案和代码。