在AngularJS中添加带有'ng-style'的背景图片

Posted

技术标签:

【中文标题】在AngularJS中添加带有\'ng-style\'的背景图片【英文标题】:Adding background image with 'ng-style' in AngularJS在AngularJS中添加带有'ng-style'的背景图片 【发布时间】:2013-08-31 08:24:55 【问题描述】:

我似乎无法使用控制器来设置 div 的 CSS 背景属性。根据文档,到目前为止,这是我的代码:

html

<div class="hero" ng-controller="HeroCtrl" ng-style="heroImage"></div>

JS:

'use strict';

angular.module('AppliedSiteApp').controller('HeroCtrl', function ($scope) 

    $scope.heroImage = 
        background: 'images/brick.jpg'
    ;

    console.log($scope.heroImage);

);

CSS:

.hero 
    width: 100%;
    min-height: 350px;
    background-position: center center;

我还尝试在 Fiddle here 中复制此设置。有人有什么想法吗?

【问题讨论】:

【参考方案1】:

AngularJS 现在支持ng-style

所以现在你可以使用ng-style=" backgroundImage: variableInScope + '/some/string' "

【讨论】:

【参考方案2】:

背景图片需要使用css的url()函数,像这样:

'background-image': 'url(http://i.stack.imgur.com/mfvI9.jpg)'

Plunker:http://plnkr.co/edit/PFUY0w?p=preview

【讨论】:

要使用动态数据,你应该这样做 ng-style=" 'background-image': 'url(' + data.url + ')' ">【参考方案3】:
$scope.heroImage = 
    background: 'url(images/brick.jpg)'
;

background-image 需要url() 才能工作。

【讨论】:

以上是关于在AngularJS中添加带有'ng-style'的背景图片的主要内容,如果未能解决你的问题,请参考以下文章

为啥我们在 AngularJS 中使用 ng-style 而不是 style 进行 css 格式化?

通过 angularJS ng-style 可变背景图像

AngularJS - 选中时使用 ng-style 设置单选按钮标签的颜色

AngularJS如何在使用ng-style时启用彩色打印css?

如何根据“ng-repeat”计数分配“ng-style”指令值

AngularJS - ng-style 不更新 css 背景属性