Non riesco a generare automaticamente lo script jsonld in angularjs2, tuttavia ho trovato una soluzione per angularjs1. Qualcuno ha una soluzione per questo.Tag script JSON-ld per angularjs2
risposta
Ho trovato un po ' "brutto", ma la soluzione di lavoro utilizzando pipe "SafeHTML":
import {Pipe, PipeTransform} from '@angular/core';
import {DomSanitizer, SafeHtml} from '@angular/platform-browser';
@Pipe({name: 'safeHtml'})
export class SafeHtmlPipe implements PipeTransform {
constructor(protected sanitized:DomSanitizer) {
}
transform(value:any):SafeHtml {
return this.sanitized.bypassSecurityTrustHtml(value);
}
}
Utilizzando in tandem con il Angular Universal, è possibile inserire qualsiasi codice di script:
<div [innerHtml]="'<script type=\'application/ld+json\'>' + jsonLdStringifiedObj + '</script>' | safeHtml"></div>
Ho testato l'output di questo codice nel Google Structured Data Testing Tool e funziona come previsto.
Ho lo stesso problema. potresti spiegare come risolvere questo problema? Per favore controlla questo link https://stackoverflow.com/questions/44389546/schema-not-detected-in-google-structured-data-testing-tool – vel
@vel, devi prerenderare la tua applicazione angolare su un server web usando Angular Universale affinché lo strumento di test dei dati strutturati di Google sia in grado di analizzare il codice HTML che include i dati strutturati. Vedere l'esempio [progetto di avvio] (https://github.com/robwormald/ng-universal-demo). – tooleks
Ho provato con universale angolare. Ma non posso usare Ng build --prod. Questo è il problema. Come risolvere questo? – vel
soluzione senza l'utilizzo di un tubo (modo un po 'pulito)
Utilizzare il this.sanitizer.bypassSecurityTrustHtml fornito https://angular.io/guide/security#sanitization-and-security-contexts
Nel modello
<div [innerHtml]="jsonLDString"></div>
Nel componente/direttiva
private jsonld: any;
public jsonLDString: any;
private setJsonldData() {
this.jsonld = {
'@context': 'http://schema.org/',
'@type': 'Service',
'name': this.providerName,
'description': this.providerDescription,
'aggregateRating': {
'@type': 'AggregateRating',
'ratingValue': '3',
'bestRating': '5',
'ratingCount': '3'
},
'url' : this.providerUrl
};
this.jsonLDString = '<script type="application/ld+json">' + JSON.stringify(this.jsonld) + '</script>';
this.jsonLDString = this.sanitizer.bypassSecurityTrustHtml(this.jsonLDString);
}
- 1. Iniezione di componenti Angularjs2
- 2. percorsi assoluti locali (C: ...) per tag script
- 3. wordpress extended_valid_elements per il tag di script?
- 4. Chiudi script HTML Tag
- 5. Tag script nella stringa JavaScript
- 6. Tag script AngularJS JSON-LD
- 7. Posizionamento tag di script HTML?
- 8. Magento rimuove il tag script
- 9. Che cos'è questo tag script?
- 10. aggiungere tag line script dopo lo script precedente indetend
- 11. 'onload' handler per tag 'script' in internet explorer
- 12. Utilizzo di Regex per rimuovere i tag script
- 13. IE crea un nuovo ambito per ogni tag di script?
- 14. Commento temporaneo <script> tag per il debug
- 15. Google AMP modo migliore per scrivere tag script JS
- 16. Utilizzando tilde nello script tag src attributo
- 17. Posso creare un tag script da jQuery?
- 18. Embedding JSON oggetti nel tag script
- 19. Jade - Utilizzando blocco all'interno tag script
- 20. Escaping</script> tag all'interno javascript
- 21. problema selettore jquery con tag di script
- 22. Yii2 Come aggiungere parametri tag script
- 23. javascript definisce l'ambito tramite tag di script?
- 24. Dare il tag script un ID
- 25. jquery html() rimuove i tag di script
- 26. È brutto avere un tag script all'interno di div?
- 27. Utilizzo del tag <script async> con Angular.js
- 28. Come trovare il genitore del tag dello script
- 29. Esiste un alternativa ai tag dello script metamorfico in Ember.js?
- 30. Leggi contenuto del tag script esterno con jQuery
visita 'http://stackoverflow.com/questions/35332430/angularjs-script-tag-json-ld/35333500#35333500' – AK1
Ciao grazie per la tua risposta, ma questa soluzione è per angularjs1 non per la versione 2 che è completamente diversa . –
trovato ancora qualcosa? – Nicky