2015-11-20 2 views
0

Я попытаюсь объяснить мою проблему как можно яснее. Я пытаюсь использовать angularJs в своем проекте Laravel в первый раз.
Контроллер только извлекает загруженные фотографии из базы данныхLaravel + AngularJs, используйте базовый путь с ng-scr вместо текущего

public function index() 
    { 
     JavaScript::put([ 
      'photos' => Photo::all() 
     ]); 

     return view('pages.protected.photos.index'); 
    } 

Я использую пакет PHP-Варс-To-Js от laracast (это фасад JavaScript вы видите), чтобы передать мой PHP фотографии объекта к мой javascript. Но это не проблема, она работает очень хорошо. Теперь, благодаря этому пакету, я могу получить фотографии объекта прямо в мой угловой контроллер просто

$scope.photoList = photos; 

до сих пор так хорошо. Теперь я хочу, чтобы на самом деле отображать изображения и получить, что я установил DIV

<div class="row" ng-repeat="photo in photoList"> 

Внутри DIV есть

<img ng-src="@{{ photo.path }}"> 

Проблема заключается в том: фото путь что-то вроде фото/picture.png, где фото - это папка в общедоступном каталоге, а страница, где я пытаюсь отобразить изображения (фотографии), находится в route group с префиксом /admin (в конце что-то вроде www.myapp.com/admin/photos). Когда я пытаюсь отобразить изображение, я получаю ошибку 404, потому что он ищет фотографии src в www.myapp.com/admin/photo/picture.png вместо www.myapp.com/photo/picture.png.
Мой вопрос: как я могу «заставить» использовать базовый url для поиска правильного пути фотографии?

ответ

1

Вы хотите добавить метод в контроллер, чтобы получить baseURL.

Угловая контроллер

$scope.getImageSourceFromPhotoPath = function (photoPath) { 
    return window.location.protocol + '//' + window.location.host + '/' + photoPath; 
} 

Шаблон

<div class="row" ng-repeat="photo in photoList"> 
    <img ng-src="getImageSourceFromPhotoPath(photo.path)"> 
</div> 
+0

Я попробовал ваше решение, но это не совсем работа для меня. Я также возвращаюсь к 404, так как теперь он ищет в 'www.myapp.com/admin/getImageSourceFromPhotoPath (photo.path)' – MisterP

+0

@MisterP ah, это означает, что у вас есть угловое приложение, установленное в направлении администратора. В этом случае я бы использовал window.location.origin вместо услуги определения местоположения angular'a $. – anthonysmothers

+0

Спасибо, я постараюсь исправить как можно скорее. У меня есть угловая установка в разделе admin, потому что я использую AngularBooter, а не только стандартное угловое приложение. – MisterP

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