Как я могу изменить элемент css на моем веб-сайте angular 7 на основе результата для URL?

#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]