Выражение ng-класса Angularjs содержит подстроку по сравнению с текущим днем

Как вы можете видеть в следующем коде, у меня есть таблица, заполненная различными строками с помощью ng-repeat и JSON.

<tbody>
    <tr ng-repeat="roll in filtering(JSON) | orderBy:[sortType,'Cutoff']:sortReverse | filter:q as results" ng-class="{ 'danger': roll.Status == 'Running', 'success': roll.Status == 'Done', 'strike': roll.Days == 'MON'}" ng-if="roll.Group == groupType || groupType == 'yes'">
        <td>{{ roll.Status }}</td>
        <td>...</td>
    </tr>
 </tbody>

Одна строка содержит переменную «Дни», которая имеет такие вхождения, как f.e. MON для понедельника или MONTUEWED для понедельника по среду или TUETHUFRI для вторника и четверга по пятницу.

Я хочу использовать элемент ng-class (как видно выше и во фрагменте ниже):

'strike': roll.Days == 'MON'

чтобы проверить, содержит ли моя строка Days (в roll.Days) для каждой строки текущий день (если возможно, что-то вроде Format (Now) to MON или TUE и т. д.), и применить css «strike» (для информационных целей: строка будет затем измените текст на курсив, и фон будет окрашен в серый цвет)

Какие-либо предложения?

С уважением, Мартин


person Martin    schedule 06.10.2016    source источник
comment
установите текущий день в переменной области видимости в контроллере и используйте ее для сравнения. Прочтите документацию по дате javascript, чтобы узнать, как получить текущий день и использовать встроенный фильтр угловой даты для его анализа.   -  person charlietfl    schedule 06.10.2016
comment
выполняет многие мои требования, но как проверить подстроку?   -  person Martin    schedule 06.10.2016
comment
какая подстрока? непонятно что вы спрашиваете   -  person charlietfl    schedule 06.10.2016
comment
как насчет row.Days.indexOf(today) >= 0?   -  person JB Nizet    schedule 06.10.2016
comment
@charlietfl: мой список. Дни могут иметь ПН, а также ПН, если проверить, если ПН == ПЕС, у меня возникнет проблема   -  person Martin    schedule 06.10.2016
comment
Вы пробовали indexOf(), как было предложено?   -  person charlietfl    schedule 06.10.2016
comment
Также... можно было бы установить прототип или свойство для объектов, которые возвращают логическое значение для is_today и упростить представление   -  person charlietfl    schedule 06.10.2016
comment
indexOf запрашивает массив, например, например. [ПН, ВТ, СР, ПТ] я думаю, не так ли? Мне нужно что-то, что проверяет все буквы на последовательность букв, например MONTUE.   -  person Martin    schedule 06.10.2016
comment
из-за отсутствия ответов: здесь вы можете найти скрипт, используя indexOf, но в примере не каждый экземпляр TUE найден: jsfiddle.net/ARK5q/293   -  person Martin    schedule 11.10.2016


Ответы (1)


С помощью комментаторов я нашел решение:

http://jsfiddle.net/ARK5q/298/

ng-repeat="jobSet in dashboard.currentWork" 
    ng-class="{'approved': jobSet.indexOf(selectedForApproval) >= 0}"

В то время как App Controller должен быть таким:

var app = angular.module("DemoApp", [])

app.controller("DashboardCtrl", function($scope) {
$scope.dashboard = {
    currentWork: [
        'MON',
        'MONTUE',
        'MONTUE',
        'MONTUEFRI',
        'TUEFRI',
        'TUE',
        'WED',
        'WED',
    ]
};
    $scope.selectedForApproval = ['TUE'];
});
person Martin    schedule 11.10.2016