[英]AngularJS - Angular way of binding on parent to trigger child
我有以下標記:
<div class="parent">
<div class="child">
我有兩個指令,一個是給parent
,一個是給child
。 現在,在parent
發生事件(例如點擊)時,我希望child
發生一些事情(例如獲得點擊)。
jQuery的實現方式是:
app.directive('parent', function()
{
return {
restrict: 'C',
link: function(scope, element, attrs)
{
element.bind('click', function()
{
element.find('.child').click();
});
}
}
}
如果我沒有弄錯,角度的辦法是改變一個范圍parent
,和$watch
在孩子吧:
app.directive('parent', function()
{
return {
restrict: 'C',
link: function(scope, element, attrs)
{
scope.childEvent = false;
element.bind('click', function()
{
scope.childEvent = true;
});
}
}
}
app.directive('child', function()
{
return {
restrict: 'C',
link: function(scope, element, attrs)
{
scope.$watch('childEvent', function(value)
{
if (value) element.click();
})
}
}
}
有人可以告訴我哪種方法更好,為什么? 第一種方法肯定較短,但似乎每個人都說Angular方法是第二種方法(因此我不使用jQuery)。 我想知道如果使用jQuery方式會出現什么問題。
我認為,第二種方法是解決問題的“有角度的方法”。 (如果您從有角度的開發人員的角度來看),這是一種無需手動操作DOM就可以解決的解決方案。 我認為這是AngularJS的主要思想:停止手動操作DOM-讓Angular為您完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.