Может ли функция Angular Renderer2 setStyle работать с элементом, атрибут стиля которого еще не определен? - PullRequest
0 голосов
/ 06 августа 2020

В приложении Angular предположим, что у нас есть элемент тела как

<body>
   ...
</body>

, и теперь я хочу установить для его фона какое-то значение, используя Angular Renderer2 как

this.renderer.setStyle(document.body, 'background', 'url("some-example-url");');

и ничего не происходит.

Но теперь, если я сделаю это с помощью функции setAttribute как

this.renderer.setAttribute(document.body, 'style', 'background: url("some-example-url");');

, все будет нормально.

Мой вопрос: можно ли установить функцию стиля работать с элементом, для которого атрибут стиля еще не определен?

1 Ответ

0 голосов
/ 06 августа 2020

Выяснил, в чем проблема в моем коде. Использование setStyle со строкой, заканчивающейся точкой с запятой, в качестве значения не работает.

// Bad
this.renderer.setStyle(document.body, 'background', 'url("some-example-url");');
// Good
this.renderer.setStyle(document.body, 'background', 'url("some-example-url")');

И после более глубокого погружения в исходный код Angular, особенно в реализации платформа-браузер средства визуализации не имеет значения, установлен атрибут стиля или нет. Angular, похоже, все равно справится.

...