2015-09-01 15 views
5

"ng-mouseover" yönergesini "ng-if" olan görüntüde kullanmaya çalışıyorum ve çalışmıyor, ancak "ng-show" kullanırsam Direktif işe yarıyor, herkes bana nedenini söyleyebilir mi? Yoksa bu bir AngularJS problemi mi? Ben bu konuda hiçbir şey okuyamaz angularjs belgelerindeng-mouseover, ng-if ile çalışmaz

: https://docs.angularjs.org/api/ng/directive/ngMouseover

ng-show

<button ng-show="true" ng-mouseover="countOne = countOne + 1" ng-init="countOne=0"> 
Increment (when mouse is over) 
</button> 
Count: {{countOne}} 

<button ng-if="true" ng-mouseover="countTwo = countTwo + 1" ng-init="countTwo=0"> 
Increment (when mouse is over) 
</button> 
Count: {{countTwo}} 

ng -eğer Fiddle: http://plnkr.co/edit/Wb6bjyJdHj5qoH7fxGFJ?p=info

cevap

5

- from the docs

Not dair bir eleman kullanılarak kaldırıldığında ng - kapsamı ile yok edildi ve öğe geri yüklendiğinde yeni bir kapsam oluşturuldu. NgIf içinde oluşturulan kapsamı, prototip devralmayı kullanarak üst kapsamından miras alır. NgModel, kapsamı içinde tanımlanan bir javascript ilkeline bağlanmak için ngIf içinde kullanılırsa, bunun önemli bir anlamı vardır. Bu durumda, alt kapsamındaki değişkende yapılan herhangi bir değişiklik, üst kapsamdaki değeri geçersiz kılar (gizler).

ng-if kullanıyorsanız, temel olarak $parent kullanmanız gerektiği anlamına gelir. Bunun gibi:

<button ng-if="true" ng-mouseover="$parent.countTwo = countTwo + 1" ng-init="$parent.countTwo=0"> 
0

Sen ng-if kullanıyorsunuz, böylece 01 kullanmanız gerekiyor

çalışan plunkr

ng-eğer diğer yönergeler gibi

<button ng-if="true" ng-mouseover="$parent.countTwo = countTwo + 1" ng-init="$parent.countTwo=0"> 
Increment (when mouse is over) 
</button> 
Count: {{countTwo}} 
1

ng-if çocuk kapsamını oluşturur. Kodunuz, istediğiniz kapsamı göstermek için $parent gerektirir. Böyle

deneyin şey: Eğer gözlemliyoruz davranış nasıl ngIf eser kaynaklanır

<p> 
    <button ng-if="true" ng-mouseover="$parent.countTwo = countTwo + 1" ng-init="$parent.countTwo=0"> 
    Increment (when mouse is over) 
    </button> 
    Count: {{countTwo}} 
</p> 

plunkr

0

Bunun nedeni, $ olayının bu bağlayıcının kapsamı dışında olması.

here is an example: 

http://plnkr.co/edit/Wb6bjyJdHj5qoH7fxGFJ?p=preview 
İlgili konular