Angularjs проверка выражения для "в массиве" - PullRequest
0 голосов
/ 23 февраля 2020

Я ищу самый плавный способ сделать что-то вроде этого:

<span x-ng-show="stuff && stuff.id in [1,2,5]">{{stuff.name}}</span>
<span x-ng-show="stuff && stuff.id in [3,4,6]">{{stuff.fullName}}</span>

Я знаю, что это не работает в AngularJS, но я надеюсь, вы понимаете, что я пытаюсь делать. Какое решение для этого лучше всего читается?

К сожалению, мне нужно решение, которое также работает в IE11

1 Ответ

1 голос
/ 23 февраля 2020

Если я вас правильно понимаю, то должна быть простая проверка, содержит ли массив что-то

[1,2,5].includes(stuff.id)

Рабочий пример

angular.module('app', [])
.controller('ctrl', function($scope) {
  $scope.stuff = {
    id: 5,
    name: 'foo'
  }
  
  $scope.toggle = function() {
    $scope.stuff.id = $scope.stuff.id === 5 ? 8 : 5;
  }
});


{{stuff.name}}

stuff.id = {{stuff.id}}

Для

angular.module('app', [])
.controller('ctrl', function($scope) {
  $scope.stuff = {
    id: 5,
    name: 'foo'
  }
  
  $scope.toggle = function() {
    $scope.stuff.id = $scope.stuff.id === 5 ? 8 : 5;
  }
});


 -1">{{stuff.name}}

stuff.id = {{stuff.id}}
...