2016-06-09 98 views
1

我正在angularJS上的代碼很好,但我被困在一個地方,我找不到爲什麼在ng-class-even指令中需要額外的引號。爲什麼ng-class甚至需要額外的引號

在這一行<tr ng-repeat="x in records" ng-class-even='"striped"'>爲什麼條紋是這樣寫的"'striped'",而不是這個"striped"

.striped { 
 
    color:white; 
 
    background-color:black; 
 
}
<body ng-app="myApp"> 
 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 
<table ng-controller="myCtrl"> 
 
<tr ng-repeat="x in records" ng-class-even="'striped'"> 
 
    <td>{{x.Name}}</td> 
 
    <td>{{x.Country}}</td> 
 
</tr> 
 
</table> 
 

 
<script> 
 
var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
    $scope.records = [ 
 
    { 
 
     "Name" : "Alfreds Futterkiste", 
 
     "Country" : "Germany" 
 
    }, 
 
    { 
 
     "Name" : "Berglunds snabbköp", 
 
     "Country" : "Sweden" 
 
    }, 
 
    { 
 
     "Name" : "Centro comercial Moctezuma", 
 
     "Country" : "Mexico" 
 
    }, 
 
    { 
 
     "Name" : "Ernst Handel", 
 
     "Country" : "Austria" 
 
    } 
 
    ] 
 
}); 
 
</script> 
 

 
</body>

回答

1

這是因爲ng-class-even允許給予expression。 在你的你的問題說:

n這個線爲什麼條紋是這樣寫的「‘條紋’」,而不是這個「條紋」

,如果你會嘗試將做到這一點,角度認爲, striped是附在$scope上的變量。因此,使用'striped'告訴給角您傳遞給該指令的表達式是一個字符串值

+0

看到很好的例子,但爲何只對'NG-類even'或'NG-類 - 奇怪的和n在'ng-'類中# –

+1

@GauravAggarwal和ngClassOdd一樣。 ngClass有不同的目的和表示法。你甚至可以閱讀文檔,可能(可能)解決你的許多問題。 – dfsq

+0

@dfsq是的,我做了,但沒有在角度的官方網站,我也只是開始吧... –

3

ng-class-even期待一個expression,但你願意分配硬編碼字符串,字符串被包裝在quotes以生效token否則angular解析器將會看對於model-name有名striped