Я думаю, что это проблема просмотра, и ее следует решать там. Я не могу проверить это сейчас, но я подозреваю, что нужно создать URL-адрес в вашем шаблоне представления.
Таким образом, шаблон сведений о книге будет таким:
<div>
<p>Name: {{ book.name }}</p>
<img ng-src="/books/{{ book.id }}/cover.png" alt="cover">
</div>
Возможно, вам придется поиграть с относительным путем, но это должно помочь. Вы хотите, чтобы эти проблемы не касались вашего контроллера и служб, и angular поставляется с множеством инструментов, таких как директива ngSrc, чтобы сделать именно это.
ИЗМЕНИТЬ
Возможно, чтобы лучше ответить на исходный вопрос, вот еще одно решение. Используйте шаблон декоратора, чтобы расширить API службы $resource, чтобы предоставить URL как свойство объекта ресурса.
Украсьте сервис $resource следующим образом:
function ResourceDecorator($delegate) {
var decorator = function (url, paramDefaults, actions) {
var resource = $delegate(url, paramDefaults, actions),
getSave;
// expose the parameterized url of the resource
resource.$url = url;
// expose urls for individual resources by extending
// the get method to return a class object that has
// a url property
getSave = resource.get;
resource.get = function(parameters, success, error) {
var r = getSave(parameters, success, error),
paramName;
// get the name of the parameter, assuming just ONE
paramName = Object.keys(parameters)[0];
// replace the parameter with it's value
r.$url = url.replace(':' + paramName, parameters[paramName]);
// return the decorated class object back
return r;
};
return resource;
};
return decorator;
}
app.config(['$provide', function ($provide) {
$provide.decorator('$resource', ['$delegate', ResourceDecorator]);
}]);
Затем у вас будет URL-адрес, доступный как свойство вашего объекта ресурса.
$scope.book.$url
Обратите внимание, что есть целый набор сценариев $resource, которые этот простой пример не поддерживает, но показывает доказательство концепции.
См. этот плункер.
person
Joel Skrepnek
schedule
11.01.2014
var coverPageUrl = '/books/' + $scope.book.id + '/cover.png'
; - person Sunil D.   schedule 11.01.2014