在polymer dart中,从父组件到子组件的通信方式是什么?

在polymer dart中,从父组件到子组件的通信方式是什么?,dart,dart-polymer,Dart,Dart Polymer,为了让孩子与父母沟通,事件似乎是最优雅的方式。 父母与孩子之间的沟通有哪些选择 更具体地说,我希望在子对象可见时调用一个方法。 以下是我的想法: xtag-优雅和实用 观察“隐藏”-未成功使其工作,隐藏在元素中未标记为可观察 在子对象中发布触发器变量,在父对象中绑定并更改它 还有其他选择吗?我还没有试过,但可能会满足你的需要 Seth Ladd的聚合物示例包含两个示例: 第一个侦听onmutate事件 library my_元素; 进口“包装:聚合物/聚合物.dart”; 导入“dart:

为了让孩子与父母沟通,事件似乎是最优雅的方式。 父母与孩子之间的沟通有哪些选择

更具体地说,我希望在子对象可见时调用一个方法。 以下是我的想法:

  • xtag-优雅和实用
  • 观察“隐藏”-未成功使其工作,隐藏在元素中未标记为可观察
  • 在子对象中发布触发器变量,在父对象中绑定并更改它

还有其他选择吗?

我还没有试过,但可能会满足你的需要

Seth Ladd的聚合物示例包含两个示例: 第一个侦听onmutate事件

library my_元素;
进口“包装:聚合物/聚合物.dart”;
导入“dart:html”;
导入“dart:async”;
@CustomTag('my-element')
类MyElement扩展了聚合关系{
MyElement.created():super.created(){
//注意这只会触发一次,
//看https://groups.google.com/forum/#!主题/聚合物开发/llfRAC\u cMIo
//这对于等待节点响应更改非常有用
//因为我们不知道节点什么时候会更改
//改变,我们可以使用onMutation。
onmutate($['list'])。然后((列出记录){
$['out'].text='在${new DateTime.now()}'检测到更改;
});
新计时器(常数持续时间(秒:1),(){
$['list'].children.add(new lieelement()…text='hello from timer');
});
}
}
第二个示例使用MutationObserver类

==编辑===

你试过链接的例子吗? 观察方法允许指定应观察的内容:

/**
*观察指定更改的目标。
*
*对可选参数的一些要求:
*
**childList、attributes或characterData必须为true。
**如果AttributeLDValue为true,则属性也必须为true。
**如果指定了attributeFilter,则属性必须为true。
**如果characterDataOldValue为true,则characterData必须为true。
*/
无效观察(节点目标,
{布尔儿童名单,
布尔属性,
布尔字符数据,
布尔子树,
布尔属性值,
bool characterDataOldValue,
列表属性过滤器}){

要从母体聚合物到子聚合物进行通信,此解决方案对我很有效

如果我们有这样的子聚合物元素:

library my_元素;
进口“包装:聚合物/聚合物.dart”;
导入“dart:html”;
导入“dart:async”;
@CustomTag('my-element')
类MyElement扩展了聚合关系{
MyElement.created():super.created(){
}
myCustomMethod(参数){
打印(“传入参数=$param”);
}
}
要从父元素访问子元素,请执行以下操作:

  • 在父元素中查询子元素(是,首先访问HTML元素)
  • 将其强制转换为绑定类(在本例中为MyElement.dart)
  • (parentclass.querySelector(“my元素”)作为MyElement).myCustomMethod({“done”:true});
    
    我试过了,但切换了$['list'],隐藏了打开和关闭。观察者只启动了一次-似乎只注意到添加和删除到DOM中的元素这是出于设计。MutationObserver只启动一次,然后你必须再次订阅。