2013-06-19 27 views
8

Eminim yine aptalca bir şey. Ben angularjs öğreniyorum, bu yüzden henüz tam kapsamı alamadım ama oraya gidiyorum. Her şeyi denedim ve bulabileceğim bir şey aradım ama hiçbir şey işe yaramadı.Angularjs rootscope güncellenmiyor ngSınıf

Mizanpaj dosyamda bir ng-class = "..." yapmaya çalışıyorum ancak ifade denetleyicimde ayarlanmış ancak bir şekilde oluşturulmuyor. Ng-view dosyasına koyduğumda işlenir. Bunun sadece dosyanın bir parçasını oluşturduğunu ancak ng-sınıfını ng-view üzerinde göstermesini istiyorum. Bu mümkün mü yoksa kısmi html dosyasının içine bir div koymak daha kolay mıdır.

Basit html dosyası

<body> 
<ng-view ng-class="{ 'splash': splash=='splash' }"></ng-view> 
</body> 

Benim denetleyicisi kök kapsamında bir değişken tanımlamak zaman yerel tanımladığı anlamda, aynı şekilde erişemez

angular.module('xxx.splash') 
    .controller('IndexCtrl', function($scope, $rootScope, config) { 
     $rootScope.splash = 'splash'; 

     $scope.login = function(e) { 
      alert('Soon. How soon? Very soon.'); 
     } 
    }); 

cevap

31

kapsamı. HTML dosyası bu şekilde değiştirilmelidir böylece $rootScope değişkenler $root.<variableName> kullanarak angularjs şablonları erişilebilir olabilir:

<body> 
<ng-view ng-class="{ 'splash': $root.splash=='splash' }"></ng-view> 
</body> 

You $scope ve $rootScope ait diffrence görebilirsiniz Bu demo

Neden çağrılmaz
+5

" html tarafında $ rootScope "? –

+0

@DavidKarlsson çünkü zaten bir kapsam. Her kapsamda, şablondaki "$ rootScope" u işaret eden bir '$ root 'özniteliği vardır, bu kapsamda ayrıca bu işaretçiye sahip olan bir kapsam elde edersiniz. Yeniden adlandırılmasının daha az kafa karıştırıcı olmasına rağmen ... – estani

İlgili konular