Ho ottenuto aiuto per salvare json come file sul lato client here. Il codice è molto breve come in questo violino.Direttiva per creare un pulsante [download]
var a = document.createElement('a');
a.download = "backup.json";
a.href = url;
a.textContent = "Download backup.json";
document.getElementById('content').appendChild(a);
stavo cercando di creare una direttiva angularjs in modo che chiama un metodo di portata per ottenere i dati. Lungo questa linea.
module.directive('myDownload', function ($compile) {
return {
restrict:'E',
scope:{ getData:'&getData'},
link:function (scope, elm, attrs) {
elm.append($compile(
'<a class="btn" download="backup.json"' +
'href=' + scope.getData() + '>' +
'Download' +
'</a>'
)(scope));
}
};
});
Questo non funziona. Come può rendere linked fiddle una direttiva?
cool .. Grazie mille !!! – bsr
beh, un piccolo problema però. È possibile recuperare nuovi dati ogni volta che clicco sul link. Ho notato che getBlob() chiama solo una volta, inizialmente. È possibile? – bsr
In tal caso, inizierei legando l'ambito della direttiva a qualsiasi dato nel campo di applicazione del controllore possa modificare i dati che verranno dati facendo clic sul collegamento. Poi proverei ad usare scope. $ Guarda su quelle proprietà vincolate all'interno della funzione di collegamento della direttiva per farlo rigenerare il link di download ogni volta che qualcuno cambia. Questo è quello che ti viene in mente, ma forse c'è un modo migliore. – mfelix