A causa di vincoli di sicurezza, angolare non analizza <script>
tag all'interno dei modelli.
Quindi il widget a cui ci si sta riferendo sta utilizzando document.write. Document.write non è disponibile al termine del caricamento della pagina.
Quindi, sembra che non ci sia una via facile qui.
Tuttavia, come quello che stai cercando di fare, è qualcosa che è abbastanza comune in add-script, krux creato postscribe. Un modo per aggirare questo problema. A mia volta ho creato una piccola direttiva che utilizza questa libreria.
Nel modello sarà simile a questa:
<div ps-src="http://100widgets.com/js_data.php?id=21"></div>
direttiva:
function psScr($document) {
return {
restrict: 'A',
scope: {
psSrc: '@'
},
link: link
}
function link(scope, elm) {
if (typeof postscribe !== 'undefined') {
postscribe(elm[0], `<script src='${scope.psSrc}'></script>`);
} else {
// If postscibe isn't loaded, first load the needed libarary
var script = document.createElement('script');
script.src = 'https://gitcdn.xyz/repo/krux/postscribe/master/dist/postscribe.js';
script.onload = function() {
// once postscibe is in, kick it into action.
link(scope,elm);
};
document.head.appendChild(script);
}
}
}
angular.module('psSrcModule', [])
.directive('psSrc', psScr);
È possibile see it in action in this plunk
Non tutti i widget comportarsi bene in combinazione con tuttavia, alcuni postscribe sembrano mostrare alcuni artefatti nell'html. Al momento mi manca il tempo per scoprire chi è la colpa di questo (100widgets o postscribe), ma se hai davvero bisogno di questo, questo è qualcosa che può essere risolto.
fonte
2016-03-15 11:59:08
errore di console? – Vineet
nessun errore, solo non rendering nulla. btw sto usando AngularJS v1.3.4. – waney
Potresti fornire più codice? Qual è il codice angolare? Dove stai cercando di mettere questo script e qual è lo scopo? – aprok