1

コードに問題がないAngularJSに取り組んでいますが、ディレクティブで余分な引用符が必要な理由が見つからない場所に行き詰まっていますng-class-even

この行で<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>

4

3 に答える 3

3

ng-class-evenが期待expressionされますが、ハードコードされた文字列を割り当てても構わないと思っています。文字列はquotes有効になるようにラップされますtoken。そうでない場合、angularパーサーはmodel-name名前がstriped

于 2016-06-09T06:34:47.537 に答える
1

ng-class-even とodd の両方に式が必要であり、文字列が必要なため、ハードコードされた文字列が必要なため、文字列を記述する必要があります ここでは ng-class-even のドキュメントです

https://docs.angularjs.org/api/ng/directive/ngClassEven

あなたはそこに非常に良い例を見ることができます

于 2016-06-09T06:58:17.630 に答える
1

これは、ng-class-evenを与えることができるためです。あなたの質問では、次のように述べています。

n この行では、ストライプがこの「ストライプ」ではなく、この「ストライプ」のように書かれている理由

これをやろうとすると、Angular はそれstripedが にアタッチされた変数であると考えます$scope。したがって、を使用して、ディレクティブに渡した式が文字列値'striped'であることを角度に伝えます

于 2016-06-09T06:36:46.180 に答える