Угловая функция для переключения логического значения - PullRequest
0 голосов
/ 02 сентября 2018

Кажется, у меня довольно простая проблема, но я не могу найти решение.

Я пытаюсь преобразовать приложение из vanilla JS в угловой каркас. Ранее в моей программе был массив объектов, и нажатие кнопки вызывало функцию, которая просто переключала бы логическое значение одного объекта между истинным или ложным. Затем объекты со значением «истина» будут отфильтрованы и отображены ниже по странице.

Функция была ...

function addRepair(here, needed) {
    possibleRepairs[here].isNeeded = needed;
    var filteredArray = possibleRepairs.filter(ind => ind.isNeeded).map(ind => ind.area + " " + ind.repair).join("\<br\>");
    document.getElementById('repairsGoHere').innerHTML = filteredArray;
}

У меня проблемы с воссозданием этого под углом. Я думаю, что я понял большую часть процесса, но я не знаю, как кодировать функцию, которая должна выполнять фактическое переключение. По сути, я не уверен, как получить доступ к созданному мною массиву и изменить логическое назначение.

До сих пор в Angular я создавал класс «ремонтные работы», а в своем файле app.component.ts я экспортировал список «ремонтных работ» в repairList, например, так: *

repairList = [
    new repairs("Front wheel", "out of true",false),
    new repairs("Front hub", "needs tightening", false),
    ...
];

В app.component.html я создал кнопку, которая должна выполнять переключение ...

<button type="button" onclick="addRepair('0', true);">Out of true</button>

которая вызывает функцию (которая, я знаю, была импортирована правильно) ...

function addRepair(here, needed) {
    repairList[here].isNeeded = needed;
}

и далее на странице будут отображаться данные, как…

<div class="col-md-8" id="repairsGoHere" ng-repeat="inst in repairList | filter: {isNeeded:true}">
    <p>{{ inst.area }}</p>
</div>

какой-нибудь совет о том, как кодировать функцию, чтобы она делала то, что мне нравится? Или я должен подойти к этому совершенно по-другому?

Спасибо за помощь!

Evan

1 Ответ

0 голосов
/ 05 сентября 2018

Получив здесь некоторые ответы, вы все помогли мне разобраться - я программировал на Angular 6 и не знал, что ng-repeat было из эры AngularJS. Ang 6 не имеет тех же функций фильтра, поэтому мне нужно выяснить, как достичь того же результата, который я искал. Спасибо за все комментарии!

...