我在angularJS上工作,我的代码很好,但是我被困在一个地方,我找不到为什么ng-class-even指令中需要额外的引号的地方。

在此行<tr ng-repeat="x in records" ng-class-even='"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>

最佳答案

这是因为ng-class-even允许给出expression
在您的问题中,您说:


  在此行中,为什么将带区这样写为“ striped”而不是“ striped”


如果您尝试这样做,Angular会认为striped$scope中附加的变量。因此,使用'striped'告诉angular,您传递给指令的表达式是一个字符串值

关于javascript - 为什么ng-class-even甚至需要额外的引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37718424/

10-11 12:13