最佳实践:通过一些后代指令传递属性参数,或者将控制器直接传递给后代?

时间:2016-01-18 09:16:28

标签: angularjs angularjs-directive angularjs-scope

我有一个父变量'a'的父指令,作为scope.a。我想通过子指令将scope.a传递给后代指令。

更好的做法是使用可以直接在后代指令中使用的getA()函数在父级上创建控制器,或者也可以通过属性将scope.a传递给后代指令通过中间子级指令?

或许有一种不同的做法,甚至更好?

1 个答案:

答案 0 :(得分:1)

我认为这取决于数据的性质。如果中间指令与那些数据无关,而它的唯一目的就是传递它,那么听起来我不应该这样做。

您还可以使用服务存储该数据,并以与上次控制器之间共享数据类似的方式从上一个子指令中获取数据。

你所说的也有用,使用"要求"子指令中的属性。这意味着在指令之间进行通信。但是,也可以独立于(大)父指令使用这个子指令吗?如果这个问题的答案是肯定的,那么您应该将数据保存在服务中,以便能够获取它而不管DOM结构如何。如果答案是否定的,我猜这种方法会很好。