2015-07-20 22 views
6
i Bu sahip ana kafa denetleyiciniz Tamam

:Sayfada herhangi bir yere tıklamak nasıl saklanır?

komut dosyası
<div class="fade-show-hide" ng-class="{'ng-hide':loggedInClose==true}" ng-show="loggedInOpened" ng-cloak> 
@Html.Partial("~/Views/Shared/_LoggedInPartial.cshtml") 
</div> 

bu var:

$ scope.loggedInClose = false; ben bu kod hiçbir şey happend kullandığınızda

$scope.toggleLoggedIn = function() { 
     $scope.loggedInOpened = !$scope.loggedInOpened; 
     $scope.languagesOpened = false; 
     $scope.loginOpened = false; 
    }; 

Sorun ... ... ben $scope.loggedInClose = true; olsun ama div gizlemek değil

angular.element(document).on('click', function() { 

    $scope.loggedInClose = true; 

}); 

i yerde tıklarsanız Birisi nasıl gizlemek div beni açıklayabilir sayfa bu?

cevap

0

ng-class'un içinde kullanmak yerine ng-hide'u ayrı kullanın.

kullanımını $scope.$apply();$scope.loggedInClose = true;

sonra plunkr "http://plnkr.co/edit/0u7u4InJsJpI4g4E8vvg?p=preview"

+0

... olmasıdır bir sorun? – None

+0

kapanmasını istemediğini onun ng-derisi ama aynı sorunu ... ile çalıştı –

1

Sana bu olayı koymak umut bakınız: Ben senin değişiklikler uygulanıyor sakın düşünüyorum

<div class="fade-show-hide" ng-hide="loggedInClose" ng-show="loggedInOpened" ng-cloak> 

: Yani HTML değiştirmek Direktifte dinleyici, kontrolörde değil? :) Her neyse, kapsam bağlamaları güncellemek için Angular tel gerekir. Bu çağrı $ yeni sindirmek başlaması yöntemi uygulamak için:

angular.element(document).on('click', function() { 
    $scope.loggedInClose = true; 
    $scope.$apply(); 
}); 
i denetleyicisi koydum cevabı
+0

Düzenlendi – None

+0

Denetleyicide DOM malzeme yapmamalısınız. Kontrolör sadece veri ve görünüm arasında bir köprüdür. DOM ile ilgili tüm manipülasyonlar sunum katmanında olmalıdır. Tabi ki, eğer iyi bir yapı ve sürdürülebilir kodla ilgilenirseniz. Bunu kontrol edin [konu] (http://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background). Sizin durumunuzda, manuel bile dinleyici değil, vücut etiketinde ngClick'e ihtiyacınız olduğunu söyleyebilirim. – dfsq

+0

sorunu, gövde etiketine sahip değilim çünkü bu kısmi görünümdür ... ve sayfa daha sonra bir denetleyiciye sahip ... kenar çubuğu ve içerik için üstbilgi denetleyicisi için denetleyicim var ... – None

İlgili konular