当数组在angularjs中没有可比较的值时,如何分配默认值

How to assign default value when array has no value to compare in angularjs

本文关键字:何分配 默认值 分配 angularjs 数组 可比较      更新时间:2023-09-26

你好,我是angularjs的新手,我有以下代码,HTML

//here i have one more ng-repeat so comparing with this home.home_info_id to avgrating avg.home_inof_id
<div ng-repeat=' home in homeDetailInfo'>
    <div ng-repeat="avg in homerating">
      <div ng-if="avg.home_info_id==home.home_info_id">
        <div class="star" ng-modal="avg" data-score="{{avg.avg}}"></div>
      </div>
    </div>

我在这里获取数据

hallrating=[
{"home_info_id":"94","avg":"3.33333333333333"},
{"home_info_id":"119","avg":"4"},
{"home_info_id":"95","avg":"4.5"}
]

所以它非常适合3套房子,但问题是我有四套房子,第四套房子还没有评级,所以我需要显示该房子的数据分数="0"。我试着跟随

<div ng-repeat=' home in homeDetailInfo'>
        <div ng-repeat="avg in homerating">
          <div ng-if="avg.home_info_id==home.home_info_id">
            <div class="star" ng-modal="avg" data-score="{{avg.avg}}"></div>
          </div>
         <div ng-if="avg.home_info_id!=home.home_info_id && avg.avg!=''">
            <div class="star" ng-modal="avg" data-score="0"></div>
          </div>
        </div>
not worked for me i also tried
<div ng-repeat=' home in homeDetailInfo'>
        <div ng-repeat="avg in homerating">
          <div ng-if="avg.home_info_id==home.home_info_id">
            <div class="star" ng-modal="avg" data-score="{{avg.avg}}"></div>
          </div>
         <div ng-if="!avg.avg">
            <div class="star" ng-modal="avg" data-score="0"></div>
          </div>
        </div>

您可以创建一个方法。

$scope.showScore = function(score) {
    if (angular.isDefined(score)) {
        return score;
    } else {
        return 0;
    }
}

然后在html 中

<div class="star" ng-modal="avg" data-score="showScore(avg.avg)"></div>

编辑:错过了平均值附近的()。

<div ng-repeat=' home in homeDetailInfo'>
  <div class="star" data-score="{{ getScore(home.home_info_id) }}"></div>
</div>

然后在你的控制器

$scope.getScore = function (homeInfoId) {
  var score = 0;
  homerating.forEach(function (rating) {
    if (rating.home_info_id === homeInfoId) {
      score = rating.avg;
    }
  }
  return score;
};