Eu quero adicionar uma classe CSS dinamicamente no clique de um botão no corpo tag. Então estou usando o DOCUMENT
objeto de angular. Aqui está o código
import { DOCUMENT } from "@angular/platform-browser";
... component code
constructor( @Inject(DOCUMENT) private document: Document) { }
addClass() {
this.document.body.classList.add("any_class");
}
mas isso está mostrando erros
Metadata collected contains an error that will be reported at runtime: Could not resolve type Document.
[0] {"__symbolic":"error","message":"Could not resolve type","line":50,"character":53,"context":{"typeName":"Document"}}
[0] at node_modules@angularcompiler-clisrcmetadatacollector.js:664:27
[0] at Array.forEach (<anonymous>)
[0] at validateMetadata (D:QPP WorkspaceQWCQWCnode_modules@angularcompiler-clisrcmetadatacollector.js:652:42)
[0] at MetadataCollector.getMetadata (D:QPP WorkspaceQWCQWCnode_modules@angularcompiler-clisrcmetadatacollector.js:507:17)
[0] at LowerMetadataCache.getMetadataAndRequests (ProjectPathnode_modules@angularcompiler-clisrctransformerslower_expressions.js:264:39)
[0] at LowerMetadataCache.ensureMetadataAndRequests (ProjectPathnode_modules@angularcompiler-clisrctransformerslower_expressions.js:209:27)
[0] at LowerMetadataCache.getRequests (ProjectPathnode_modules@angularcompiler-clisrctransformerslower_expressions.js:204:21)
[0] at ProjectPathnode_modules@angularcompiler-clisrctransformerslower_expressions.js:146:36
[0] at ProjectPathnode_modulestypescriptlibtypescript.js:2601:86
[0] at reduceLeft (ProjectPathnode_modulestypescriptlibtypescript.js:2274:30)
error Command failed with exit code 2.
[0] at ChildProcess.exithandler (child_process.js:275:12)
[0] at emitTwo (events.js:126:13)
[0] at ChildProcess.emit (events.js:214:7)
[0] at maybeClose (internal/child_process.js:925:16)
[0] at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
Qual é o problema? estou usando angular5. E existe alguma outra maneira de adicionar classe dinamicamente?
Respostas:
2 para resposta № 1Você pode usar diretamente document
em datilografado sem qualquer importação.
Apenas faça: document.body.classList.add("any_class");
.