小编Rin*_*ema的帖子

@Input是否提供双向绑定?

我认为@Input的工作方式将直接表示“不!”。这个问题。但是,今天我偶然发现了一些奇怪的行为,或者也许我一直以为@Input是错误的方式。

我已经进行了一次突袭来显示该问题。这发生在Angular 7.0.1的stackblitz中,但是在我的本地项目中,它也发生在Angular 6.1.2中。

堆栈闪电展示了一个具有对象的简单父组件。该对象通过@Input传递给子组件。子组件和父组件均具有更改对象的功能。它们也都在模板中显示对象的值。

我希望看到当父对象更改对象时,它将在子对象中更改它。但是,我没想到当孩子更改对象时,它也会为父对象更改它。堆栈闪电确实显示了此行为。我一直认为您需要通过@Output显式发出一个事件,以使流程流向父级并在子级组件中进行更改。

input angular

5
推荐指数
1
解决办法
999
查看次数

如何在RDD(Scala)上创建嵌套的forloop

我有一个具有以下结构的RDD:
((ByteArray, Idx), ((srcIdx,srcAdress), (destIdx,destAddress)))

这是比特币区块链的边缘(交易)的表示.(ByteArray, Idx)可以看作是一个标识符,休息是一个边缘.我的最终目标是在区块链的图形表示中聚合节点.对此我需要做的结构的第一个修改是将位于同一比特币事务中的源放在一个边缘(最终在一个节点中).通过这种方式,我将"集群"属于同一用户的公钥.此修改的结果将具有以下结构:
((ByteArray, Idx), (List((srcIdx, srcAddress)), (destIdx, destAddress)))
或者以任何其他形式具有相同的功能(例如,如果这在Scala中不可能或不合逻辑).

我目前的思考过程如下.在Java中,我将对RDD中的项进行嵌套for循环,每个循环为具有相同键((ByteArray, Idx))的项创建列表.删除任何重复后.但是,由于我正在处理RDD和Scala,这是不可能的.接下来,我尝试在我的RDD上执行a .collect()然后单独的.map()功能,使用集合在我的map函数中循环.但是,Spark并不喜欢这样,因为显然集合无法序列化.接下来,我尝试创建一个"嵌套"映射函数,如下所示:

val aggregatedTransactions = joinedTransactions.map( f => {
  var list = List[Any](f._2._1)

  val filtered = joinedTransactions.filter(t => f._1 == t._1)

  for(i <- filtered){
    list ::= i._2._1
  }

  (f._1, list, f._2._2)
})
Run Code Online (Sandbox Code Playgroud)

这是不允许的,因为.map()中没有过滤器(或映射)功能.有哪些替代方案?

我对Scala很新,因此非常感谢任何有用的背景信息.

scala apache-spark rdd

0
推荐指数
1
解决办法
330
查看次数

标签 统计

angular ×1

apache-spark ×1

input ×1

rdd ×1

scala ×1