@jaimeあなたの答えは大丈夫です。ただし、ページに$ http.getがある場合は、ng-ifを使用します。
app.directive('backImg', function(){
return function($scope, $element, $attrs){
var url = $attrs.backImg;
$element.css({
'background-image': 'url(' + url + ')',
'background-size': 'cover'
});
}
});
工場で
app.factory('dataFactory', function($http){
var factory = {};
factory.getAboutData = function(){
return $http.get("api/about-data.json");
};
return factory;
});
コントローラエリアで
app.controller('aboutCtrl', function($scope, $http, dataFactory){
$scope.aboutData = [];
dataFactory.getAboutData().then(function(response){
// get full home data
$scope.aboutData = response.data;
// banner data
$scope.banner = {
"image": $scope.aboutData.bannerImage,
"text": $scope.aboutData.bannerText
};
});
});
ngを使用する場合のビュー-以下のように、補間によって画像を取得します。それ以外の場合、ディレクティブはHTTPリクエストの前に値を取得するため、画像を取得できません。
<div class="stat-banner" ng-if="banner.image" background-image-directive="{{banner.image}}">