MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

ng-nếu được gọi nhiều lần hơn bình thường

ng-if của bạn sẽ được gọi trên mọi vòng lặp thông báo. Vấn đề là nó chứa một biểu thức liên quan đến một lời gọi hàm. Angular không có cách nào để biết khi nào kết quả của biểu thức có thể thay đổi, vì vậy nó luôn gọi nó.

Một lựa chọn tốt hơn sẽ là đặt một cờ trong mỗi kênh và sử dụng ng-if để chỉ kiểm tra cờ liên quan. Sau đó, bạn chỉ cần cập nhật cờ bất cứ khi nào $scope.activeCategory những thay đổi mà bạn có thể thực hiện với mã nơi bạn đặt danh mục hoặc sử dụng $scope.$watch() để kích hoạt nó tự động.

ví dụ:

$scope.setCategory = function (name) {
  $scope.activeCategory = name;
  for (var index=0; index < $scope.channels.length; index++) {
      $scope.channels[index].hasCategory = hasCategory($scope.channels[index].category, name);
  }
};

function hasCategory(categoryNameArray, name) {
  console.log('thisisbeingcalled');
  var e = _.indexOf(categoryNameArray, name);
  if (e === -1) {
    return false;
  } else {
    return true;
  }
}

Sau đó, trong mẫu của bạn:

<md-card flex="15" flex-xs="40" class="slide-up" layout="column"
    ng-repeat="channel in channels | orderBy: 'number' | filter: queryname"
    ng-if="channel.hasCategory"
    ng-init="channel.edit = false">
  <md-card-header ng-show="channel.edit == false">
    <img ng-src="{{channel.logo}}" alt="">
  </md-card-header>
  <md-card-header-text ng-show="channel.edit == false">
    <span class="md-subhead dark-blue" layout="row" layout-align="center" layout-margin>{{channel.number}}</span>
  </md-card-header-text>
</md-card>

sẽ hiệu quả hơn.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thành công:không có ý định thu thập trong kho lưu trữ

  2. Làm thế nào để thực hiện một upert trong Mongoose khi tìm kiếm một tài liệu được nhúng?

  3. UnhandledPromiseRejectionWarning:MongooseServerSelectionError

  4. Cách tăng tốc truy vấn mongo

  5. Cách đặt tính năngCompatibilityVersion trong MongoDB