2015-01-01 3 views
0

Я пытаюсь написать последовательность, которая загружает json, преобразует его в xml и возвращает файл, который непосредственно сохраняется на диске браузером. В моей фабрике saveData просто возвращает $ HTTP обещание, и мой контроллер имеет:uiRouter блокирование перенаправления на статический каталог сервера

vm.saveFile =() -> 
    console.log "Saving to file" 
    Factory.saveData() 
    .success (res) -> 
     $location.url '/newfile.tcx' 

Первоначально я планировал, чтобы мой экспресс-бэкенд отправить редирект, но игнорируются угловым $ HTTP, и поэтому в настоящее время осуществляется на стороне клиента. Если я иду непосредственно http://localhost:9000/newfile.tcx то файл загружается (как /uploads определен как статический каталог в экспресс), но $ местоположение перенаправлять выше только возвращает меня на домашнюю страницу, которая, вероятно, является результатом:

.config ($stateProvider, $urlRouterProvider, $locationProvider) -> 
    $urlRouterProvider 
    .otherwise '/' 

Что мне нужно изменить в моей конфигурации uirouter, чтобы файл был загружен (а затем перенаправлен на '/' or '/editor')

ответ

0

Служба определения местоположения $ меняет адрес в адресной строке, но не запрашивает у браузера загрузите ресурс, расположенный по этому адресу. Чтобы сделать это, просто использует родной window.location объект:

window.location = 'http://localhost:9000/newfile.tcx'; 

См https://developer.mozilla.org/en-US/docs/Web/API/window.location

Смежные вопросы