2012-11-17 12 views
17

Öğeler listem boş olduğunda yalnızca göstermek istediğim bir div öğem var. Bu yüzden (Haml cinsinden) aşağıdaki koymak:ng-cloak ve ng-show ekrandaki gizli öğeyi yanıp söner

#no-items.ng-cloak{ :ng_show => "items.length <= 0", :ng_cloak => true } 

Ancak, eleman hala ekranda yanıp sönmesi Bu işlem tamamlandıktan sonra bile. Sonra Angularjs - ng-cloak/ng-show elements blink'u gördüm, ancak CSS'de aşağıdakileri ekledikten sonra bile, göz kırpma hala gerçekleşir.

[ng\:cloak], [ng-cloak], .ng-cloak { 
    display: none !important; 
} 

Ne yaptığım hakkında bir fikriniz yanlış?

+0

. Benim tahminim Hamel'inde yanlış bir şey var. Kullanmıyorum, bu yüzden sana ne diyemem. Sadece tarayıcınızda hata ayıkla. Açısal uygulama çalıştırılmadan sayfayı yükleyin. HTML beklendiği gibi mi? Gizli mi? – 34m0

cevap

10

Yukarıda gösterilen ng-cloak CSS'nin sayfanızın başında yüklü olduğundan emin olun.

<div ng-hide="items.length" ng-cloak>no items</div> 

Numune :

Bu

yapmanız gereken tüm olmalıdır.

34

JS yüklendikten sonra nasıl çalışacağını etkilemeden ng-hide'u sınıfa yerleştirebilirsiniz. Bununla birlikte, JS'nin yüklenmesini beklerken, CSS'nin dikkate alması için onu koymak yararlıdır.

<div data-ng-controller="RoomsController"> 
<div ng-cloak class="ng-cloak ng-hide" data-ng-if="visible" > 
    Some text 
</div>   
</div> 
1

Çözümlerin hiçbiri benim için işe yaramadı. Bulunan tek çözüm aşağıdaki gibidir:

$scope.$on('$viewContentLoaded', function() { 
      $scope.completed = true; 
});    

ve her bir bakış html,-ng ise = üstteki elemana "tamamlandı" ekleyin: Her denetleyicisi

ekleyin. Örneğin:

<div ng-if="completed"> 

Not: Sorun ateş ve ui-yönlendirici sınırlandırılmıştır. Orada, ng-pelerin yok sayılır ve css çözümü yoktur. Benim için çalışan tek çözüm, yukarıda verdiğim çözüm.

İlgili konular