Mam pomoc, aby zapisać json jako plik po stronie klienta here. Kod jest bardzo krótki, jak w tym skrzypcach.Dyrektywa o utworzeniu przycisku [pobierz]
var a = document.createElement('a');
a.download = "backup.json";
a.href = url;
a.textContent = "Download backup.json";
document.getElementById('content').appendChild(a);
Próbowałem utworzyć dyrektywę angularjs tak, aby wywoływała metodę w zakresie, aby uzyskać dane. Wzdłuż tej linii.
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));
}
};
});
To nie działa. Jak wprowadzić linked fiddle do dyrektywy?
chłodny .. bardzo dziękuję !!! – bsr
cóż, jedna mała sprawa jednak. Czy mogę pobrać nowe dane za każdym razem, gdy kliknę link. Zauważyłem, że getBlob() wywołuje tylko raz, na początku. Czy to możliwe? – bsr
W takim przypadku zacznę od powiązania zakresu dyrektywy z dowolnymi danymi w zakresie kontrolera, które mogą zmienić dane, które zostaną podane po kliknięciu łącza. Potem spróbowałbym użyć zasięgu. $ Obejrzyj te powiązane właściwości wewnątrz funkcji linku dyrektywy, aby ponownie wygenerować link do pobierania, gdy tylko którykolwiek z nich się zmieni. Tak to przychodzi na myśl, ale może jest lepszy sposób. – mfelix