2013-08-01 25 views
10

aşağıdaki eserlerini bir

a(href="javascript: ActiveChange('topStories');") Top Stories 

bir işlev ActiveChange (değişken) aramak Ama işlev böyle

Eğer $ kapsamını diyorsunuz nasıl
function activeController ($scope) {  
    $scope.topStories='active'; 
    $scope.mostRecent='lucky'; 
    $scope.ActiveChange = function (activeTab) { 
     if(activeTab=='topStories'){ 
      var x=document.getElementById("someinput"); 
      x.value='happy to be alive'; 
      $scope.topStories='active'; 
      $scope.mostRecent=''; 
     } 
     else {  
      alert('else'); 
      $scope.topStories='happy'; 
      $scope.mostRecent='active'; 
     } 
    } 
} 

gibi bir angularjs $ kapsamı fonksiyonu olarak tanımlanır eğer. ActiveChange = işlevinden (activeTab)?

+2

sen [ngClick] kullanmadığınız bir sebebi (http://docs.angularjs.org/api/ var mı ng.directive: ngClick)? – Mike

+0

evet, çok iyi bir sebep olmasa da. (bilgi eksikliği) Başları için teşekkürler. –

+1

Kontrol cihazınızda DOM referanslarını gördü mü? .... utanç verici :) – Spock

cevap

23

@Mike adlı kullanıcının yaptığı gibi ngClick kullanmanız yeterli. href'da köşeli kullanım nedenini göremiyorum.

şey gibi:

<a href="" ng-click="ActiveChange('topStories');">Top Stories</a> 

Veya boş bırakın:

<a href ng-click="ActiveChange('topStories');">Top Stories</a> 
+6

'href' değeri javascript: void (0);' veya boş bırakılmalıdır - aksi takdirde tarayıcı sayfayı yukarı kaydırır. 'Ng-click' ifadesinden geri döndürme, bunun gerçekleşmesini engelleyemez (ve sanırım bu doğrudur, çünkü kapsamın bir yöntemi, çağrılan içeriğin farkında olmak zorundaysa garip olur) –

+0

href değerini "javascript: angular.noop();" olarak ayarlayın "#" veya "void (0)" yerine –

İlgili konular