Если вы не можете изменить свои значения, вы можете вызвать toLowerCase()
для значения, чтобы убедиться, что оно в нижнем регистре, а затем сравнить его с "yes"
angular.module('selectExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.register = {
value: [
{value:"Yes"},{value:"no"},{value:"yes"},
{value:"No"},{value:"no"}
],
};
}]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="selectExample" ng-controller="ExampleController">
<table id="example" width="100%">
<thead>
<tr align="center">
<th>Value</th>
<th>Replace</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="person in register.value">
<td align="center">{{ person.value }}</td>
<td align="center">{{ person.value.toLowerCase() == "yes" ? "Yup":" "}}</td>
</tr>
</tbody>
</table>
</div>
Причина, по которой ваш код не работал, потому что когда вы используете троичный (? :)
, он преобразует значения в истинные значения и непустую строкувсегда будет истинным, поэтому каждое значение истинно и всегда будет "Yup"