Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 Polymer - Fatal编程技术网

Dart 当一个可观察对象发生变化时,我如何获得它的值?

Dart 当一个可观察对象发生变化时,我如何获得它的值?,dart,dart-polymer,Dart,Dart Polymer,这是我的密码: 省道: 导入'dart:html'; 进口“包装:聚合物/聚合物.dart”; @CustomTag(“我的东西”) 类神话扩展了关联{ @可观察var val=“你好,世界”; MyThing.created():super.created(){} } Html: Val是:{{Val} 您可以看到val表示文本区域的值。我想做的是:当textarea的值发生变化时,将最后一个单词放入其中,修改它,并用新文本更新textarea 例如,如果用户键入“Hello,world

这是我的密码:

省道:

导入'dart:html';
进口“包装:聚合物/聚合物.dart”;
@CustomTag(“我的东西”)
类神话扩展了关联{
@可观察var val=“你好,世界”;
MyThing.created():super.created(){}
}
Html:


Val是:{{Val}

您可以看到
val
表示文本区域的值。我想做的是:当textarea的值发生变化时,将最后一个单词放入其中,修改它,并用新文本更新textarea

例如,如果用户键入“Hello,world”,我可能希望识别单词“world”,并将其替换为全大写版本的“world”

我是否必须使用
querySelector
与我的
@observable
行分开观察字段?我尝试了这个,但没有成功:

querySelector(“#inputName”).onInput.listen(someUpdate);
无效更新(事件e){
打印(“更改”);
}
我在
MyThing
类中尝试了它,我在main中尝试了它,在任何东西之外尝试了它,但都没有成功


我觉得应该有某种我可以监听的事件,通过使用
@observable
进行设置。有?如果我听不到任何东西,或者我无法添加任何类型的自动回调,那么我如何才能将我的
查询选择器
行更改为实际工作?

我不知道
文本区域
是否有什么特别之处,但我想应该满足您的需要,只需在
MyThing
类中添加一个
valChanged
方法。每次
val
更改时都会调用此方法。
如果您在
valChanged
内部更改
val
,您可能会遇到无休止的循环

valChanged(旧值、新值){
//在这里做事
}
或者您可以使用
更改
事件


valChangeHandler(事件e){
//在这里,您可以将元素作为'e.target'传递`
//您可以访问“val”`
}

这正是我要找的。你知道有没有办法获得对值也发生变化的元素的引用?我认为这是不可能的。您试图实现什么?也许
更改
事件更适合您的用例。我更新了我的答案。