Here is the problem :
This thing is turning me crazy since three days... I would like to use an angularJS variable as background image without using a directive.
My goal is to load any type of image (square, rectangle...etc), reduce it to match a 150px circle size (hidden what's too much) and center it into my page, without the image being squeezed (so keep the aspect ratio).
I'm using ionic 1.0, angular 1.6, so i tried to import this directive : https://www.npmjs.com/package/angular-background-image/v/0.1.2 but this doesn't work because of the "require" part.
I followed this angularjs: ng-src equivalent for background-image:url(...) but either this didn't work.
Here is the final solution :
Plunker : https://next.plnkr.co/edit/HMexvebJBXLg9Auu
// Here is the variable containing the image link
var app = angular.module('app', []);
app.controller("Ctrl",function($scope){
$scope.avatar = "https://i.ytimg.com/vi/7xWxpunlZ2w/maxresdefault.jpg";
});
#rounded-image {
border-radius: 50%;
width: 150px;
height: 150px;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
overflow: hidden;
border: 3px solid red;
margin-left: auto;
margin-right: auto;
}
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="app" ng-controller="Ctrl">
<div>
<div ng-style="{'background-image': 'url(' + avatar + ')'}" id="rounded-image"></div>
</div>
</body>
ng-stylestatement like that. If those are all constants, why are you even usingng-stylein the first place? Please review the AngularJS docs on howng-styleworks. Also, your plunker doesn't load - it just gives a bunch of angular errors. I fixed it a bit but am still unsure if this is what you are trying to achieve: plnkr.co/edit/45o6uPMcHWJVxx4JF5D9data-ng-src="{{avatar}}"the image remains an image and not a background, that's why i tried to set it as background usingng-style, but you are right it was not the good way to do so.. :/ng-styleis a reasonable thing to use here. It doesn't really make sense to use abackground-imageon animgthough, so I would suggest using adivinstead. The trick is to only set thebackground-imageproperty with ng-style... everything else can be set in a css class/id. See my new example plunker: next.plnkr.co/edit/djiM21laCmmTxyw8border: 3px solid red;to the#rounded-imageselector. No need to add thatcircle-imageclass.