2016-04-06 17 views
1

Bir .jd dosyasında scope.course'ın tanımlandığı yerde bir yönerge ile kullanılan bir html dosyası var. ng-href="courses/{{course.url}}" Aşağıdaki kodda güzel çalışır ve "ders/myurl"ng-class, angularjs'de isable yönteminde değişken var

bağlantısını sağlayan Ama ng-sınıfında isActive yönteminde bir değişkene koyarak ben buradan erişmek olamaz sanki göstermek doesnt .

scope.isActive = function(route){ 
    console.log(route); 
    return route === $location.path(); 
} 

Ama başka bir şey olmadan "/ kurslar /" kaydeder

benim isActive yöntem haline course.url koyabilirsiniz nasıl

:

<li ng-class={active: isActive('/courses/{{course.url}}')}><a ng-href="courses/{{course.url}}">Overview</a></li> 

Benim isActive yöntem şöyle?

+0

Sizin isActive yöntem bir boolean değer döndürmesi gerekir. IsActive yöntem kodunuzu yapıştırabilir misiniz? –

+0

My isActive yöntemi: 'scope.isActive = işlev (rota) { dönüş yolu === $ location.path(); } – Jimmie

+0

Evet, o zaman fikkatra'nın gönderdiği yanıtın işe yarayacağını düşünüyorum. === $ location.path() yönteminin doğru olarak değerlendirilip değerlendirilmediğini görmek için konsolunuzu kontrol ettiniz mi? Sıkı bir equaltiy operatörü kullanıyorsunuz. Tutarsızlıklar olabilir. Sadece dene ve iki kere kontrol et. –

cevap

1

bu deneyin:

var mod = angular.module('myapp', []); 
 
mod.controller('mycontroller', function($scope, $location) { 
 
    $scope.course = { 
 
    url: 'myurl' 
 
    }; 
 
    
 
    $scope.isActive = function(route){ 
 
    return route === '/courses/myurl'; 
 
    } 
 
});
.active a { 
 
    color: green; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myapp" ng-controller="mycontroller"> 
 
    <div ng-class="{'active': isActive('/courses/' + course.url) }"><a ng-href="courses/{{course.url}}">Overview</a> 
 
    </div> 
 
</div>

+0

Yine de, yöntem bir boole döndürmezse, çalışmayacaktır. ng sınıfı, boole değerleri ile çalışır. –

+0

Bu satırı denedim ancak konsolda bir hata oluştu: "angular.min.js: 114 Hata: [$ parse: ueoe] http://errors.angularjs.org/1.5.0/$parse/ueoe?p0 =% 7B'aktif '% 3A Hata (yerel) adresindeki http: // localhost: 3000/libs/angular.min.js: 6: 416 " – Jimmie

+0

ng-class = sonra çift tırnakları unuttun. Çalışan kod snippet'i ile güncellendi. – fikkatra

İlgili konular