M2DOC:如何传递对象集合

时间:2019-12-03 09:15:37

标签: m2doc

是否可以将对象列表(PhysicalComponent)传递到自定义服务,从而阻止我遍历所有PhysicalComponent?

实际上,我在M2DOC模板中进行了这样的迭代:

constructor(@Inject(DOCUMENT) {defaultView}: Document) {
  this.width = defaultView ? defaultView.innerWidth : 0;
}

1 个答案:

答案 0 :(得分:0)

您可以使用以下签名创建服务:

public SomeReturnType myService(List<PhysicalComponent> components) {
...
}

public SomeReturnType myService(Set<PhysicalComponent> components) {
...
}

public SomeReturnType myService(Collection<PhysicalComponent> components) {
...
}

那么您可以这样称呼它:

{m:self.eAllContents(pa::PhysicalComponent)->myService()}

箭头指示将集合传递给服务,点箭头指示在集合的每个元素上调用服务。

如果您使用集合列表作为第一个参数,则可能需要使用asSequence()或asOrderedSet():

{m:self.eAllContents(pa::PhysicalComponent)->asSequence()->myService()}

{m:self.eAllContents(pa::PhysicalComponent)->asOrderedSet()->myService()}