#javascript #html #css #angular #angular7
#javascript #HTML #css #angular #angular7
Вопрос:
У меня есть несколько шаблонов sonoff, и я создаю для них веб-панель управления. Если я перейду к http://sonoff/cmnd?cmnd=Power (или что-то в этом роде) он ответит {«power»: «вкл.»} или {«power»: «выкл.»}. Как я могу изменить, какие классы css применяются к html-объекту, на основе ответа от this. Мне также нужно, чтобы он менялся, когда я вручную нажимаю кнопку на sonoff без перезагрузки страницы.
Любая помощь будет высоко оценена
Я полный новичок, я создал новый проект, используя ng new PrinterPanel --routing
и не сильно изменил структуру.
Комментарии:
1. Добро пожаловать в StackOverflow! Можете ли вы добавить фрагмент кода, который поможет лучше понять вашу проблему?
Ответ №1:
Я предполагаю, что вызовы URL-адресов выполняются с контроллера / службы. Если это так, у вас, вероятно, есть какие-то функции, которые вы вызываете при щелчке и других событиях, возможно, что-то подобное сработает для вас:
<span ng-class="styleFunction('Power')">some text</span>
и в контроллере:
$scope.styleFunction = function(param){
$http.get(http://sonoff/cmnd?cmnd=" param)
.then(function(response) {
if (response[param] === 'on')
return "ClassOn";
else
return "ClassOff";
});
}
}
Комментарии:
1. Упс, я использую angular 7, а не angularjs, я забыл об этом, извините, что не уточнил. Я только что перешел на angular.
2. Если это так, просто функция должна быть в компонентном файле typescript, а в html измените ее на [ngClass]