1.5 angularjs促进组件和组合作为构建应用程序的方式。有时您需要将函数传递给子组件。有3种不同的绑定类型可供您这样做:'&','<',' ='。我知道它们是如何工作的,但我不知道为什么我会使用'&'当'<':
时,再次绑定!this.myFunction
之类的简单检查将无法正常工作)然而,许多教程和书籍仍然显示'&'作为将功能传递给组件的主要方式,所以我认为使用'&'而不是'而不是'这些是什么?
进一步澄清我的问题。想象一下,我有一个父组件想要将一个函数(一个回调)传递给它的子元素。这些孩子应该是可重复使用的组件,无论是否有回调都可以正常工作。
如果ChildA
指定回调的绑定类型为'&',则必须使用$ctrl.callback({ data: data })
语法调用它,并且无法简单地检查是否回调存在(假设我只想在回调可用时显示某个按钮)。
另一方面,在ChildB中,回调的绑定类型是'<'。父传递函数与任何其他值相同。这种方法的优点是ChildB使用更自然的语法($ctrl.callback(data)
)调用函数,并且能够以非常简单的方式检查函数是否存在:<button ng-show='$ctrl.callback'>Only shows when the callback fn is available</button>
。
所以,再次概述这个问题:为什么我甚至会使用&#39;&amp;&#39;了吗?