AngularJS ng-repeat不适用于Chrome

时间:2016-08-13 02:06:04

标签: javascript angularjs google-chrome

我知道这个问题已被多次提出,可能会被视为重复。但我没有找到答案,于是决定提出新问题。

问题是ng-repeat在Chrome中无法正常工作,而在FF中工作正常。有一些建议是为了解决这个问题,但我已经使用它们并且它没有帮助。

  1. 其中一个建议是使用数组作为模型而不是对象。第二个是按顺序使用单引号文字。
  2. 我遇到了这两个条件,但仍然在Chrome中看到问题。

    这是我的代码:

    <a  ng-click="pred = 'price'; reverse=!reverse">
        <span></span>
    </a> | 
    <a ng-click="pred = 'name'; reverse=!reverse">
        <span></span>
    </a> | 
    <a ng-click="pred = 'time'; reverse=!reverse">
        <span></span>
    </a>
    <div ng-repeat="item in items | orderBy:pred:!reverse">
    </div>
    

    此外,您还可以在两个浏览器中打开链接。有些项目按时间排序(左栏),它们按FF排序,但不在Chrome中排序。

    我认为我正在使用角度1.2.9。请告知如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

原因可能是你没有初始化反向变量。

&#13;
&#13;
(function(angular) {
  'use strict';
angular.module('orderByExample1', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.friends = [
      {name: 'John',   phone: '555-1212',  age: 10},
      {name: 'Mary',   phone: '555-9876',  age: 19},
      {name: 'Mike',   phone: '555-4321',  age: 21},
      {name: 'Adam',   phone: '555-5678',  age: 35},
      {name: 'Julie',  phone: '555-8765',  age: 29}
    ];
  }]);
})(window.angular);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="orderByExample1">
  <div ng-controller="ExampleController" ng-init='reverse=false;'>
    <a  ng-click="pred = 'name'; reverse=!reverse">
    Name
</a> | 
<a ng-click="pred = 'phone'; reverse=!reverse">
    Phone
</a> | 
<a ng-click="pred = 'age'; reverse=!reverse">
    Age
</a>
  <table class="friends">
    <tr>
      <th>Name</th>
      <th>Phone Number</th>
      <th>Age</th>
    </tr>
    <tr ng-repeat="friend in friends | orderBy:pred:reverse">
      <td>{{friend.name}}</td>
      <td>{{friend.phone}}</td>
      <td>{{friend.age}}</td>
    </tr>
  </table>
</div>
</body>
&#13;
&#13;
&#13;