css - ionic 中带有 ng-repeat 的列不会分成行

标签 css angularjs angular-ui-router ionic-framework angularjs-ng-repeat

我遇到的主要问题完全与我的代码无法在 3 列的多行中显示徽章而不在每一行中重复相同的徽章有关。即使我识别出 col-33,徽章也出现在行中(均匀分布在 33% 中)超过页面的整个宽度;它们溢出了页面!我试过设置 max-width 无济于事。拜托,任何建议都很好,这是代码:

  <ion-content class="badge-bg">
    <div class="row" ng-repeat="row in badgesCtrl">
      <div class="col-33" ng-show="badge.images[0].url" ng-repeat="badge in badgesCtrl.badges ">
        <img ng-click="badgesCtrl.viewBadgeDetail(badge)"
             alt="" src="{{badge.images[0].url}}" alt="color" />
      </div>
    </div>
  </ion-content>

Controller

 .controller('BadgesCtrl', ['$location', '$routeParams', '$scope', '$state', '$ionicPopover', 'BadgesService',
function($location, $routeParams, $scope, $state, $ionicPopover, BadgesService) {
  $ionicPopover.fromTemplateUrl('templates/popover.html', {
    scope: $scope,
  }).then(function(popover) {
    $scope.popover = popover;
  });

  badgesCtrl = this;
  $scope.search = {};
  $scope.search.searchText = '';

  // Initialize badges Data
  BadgesService.getBadges().success(function(badges) {
    badgesCtrl.badges = badges;
  });

  BadgesService.getBadge($routeParams.badgeId).success(function(badge){
    badgesCtrl.badge = badge;
  });

  badgesCtrl.viewBadgeDetail = function(badge) {
    $location.path('/tab/badges/' + badge._id);
  };
}]);

最佳答案

看起来 badgesCtrl 是您的 Controller ,您在其中放置了诸如 viewBadgeDetail 之类的功能以供使用,但随后您使用了 badgesCtrl第一个 ng-repeat 就像是一个集合。您是说 ng-repeat="row in badgesCtrl.rows" 吗?似乎您还应该在第二个 ng-repeat 中引用 row.badges 而不是 badgesCtrl.badges

通过这种方式,您可以遍历 的集合,然后每个 都有它自己的 唯一的徽章集合。

首先ng-repeat:

<div class="row" ng-repeat="row in badgesCtrl.rows">

第二个ng-repeat:

<div class="col-33" ng-show="badge.images[0].url" ng-repeat="badge in row.badges">

如果您有一组徽章,例如 badgesCtrl.badges,并且您希望将其分开以便像我上面的那样工作,那么试试这个:

badgesCtrl.rows = [];
var count = 0;
var currentRow = { badges: [] };
badgesCtrl.badges.forEach(function (badge, index) {
  currentRow.badges.push(badge);
  count++;
  // If count is 3 or we are at the end of the badges collection
  // then push our current row and start counting again.
  if (count === 3 || index === badgesCtrl.badges.length - 1) {
    badgesCtrl.rows.push(currentRow);
    count = 0;
    currentRow = { badges: [] };
  }
});

关于css - ionic 中带有 ng-repeat 的列不会分成行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32486681/

相关文章:

html - 在 Bootstrap 3 中,如何更改垂直行之间的距离?

css - Pagedown Markdown 编辑器 : issue with images

AngularJS UI 路由器 : ui-sref not updating URL in address bar because parent state has StateParams?

javascript - 将函数分配给 Angular ui-router `onEnter` 不起作用?

angularjs - 为什么带有 ui-router 的 AngularJS 不断触发 $stateChangeStart 事件?

javascript - 使用 jquery 加载的页面的 CSS 属性继承性

css - 更改 GWT tabBar 元素的 CSS

javascript - jqueryUI 可选择与 AngularJS 不适合我

javascript - AngularJS - 从无序列表中省略用户

javascript - AngularJs:基于值的不同占位符