您好我有以下代码来设置整个页面的背景,并且它可以正常显示背景图像,但Chrome控制台显示此错误
GET http://localhost:3000/assets/img/backgrounds/%7B%7Bbgimg%7D%7D 404 (Not Found)
GET http://localhost:3000/assets/img/backgrounds/ 404 (Not Found)
使用src
而不是ng-src
加载图片时此错误类似,但对于背景我不知道任何指令。这是我的代码
HTML:
<body background="assets/img/backgrounds/{{bgimg}}">
<div class="view-container layer">
<div ng-view></div>
</div>
控制器
var bgImagesList = ['01.jpg',
'02.jpg', '03.jpg', '04.jpg',
'05.jpg', '06.jpg', '07.jpg',
'08.jpg', '09.jpg', '10.jpg',
'11.jpg'];
var changeBaclground = function () {
$rootScope.bgimg = bgImagesList[Math.floor(Math.random() * bgImagesList.length)];
};
答案 0 :(得分:5)
您可以将ng-style用于此目的
<body ng-style="{'background-image':'url(assets/img/backgrounds/{{bgimg}})'}" >
其他简单方法将是 HTML:
<body ng-style="setBackground()" >
在控制器中:
var bgimg = bgImagesList[Math.floor(Math.random() * bgImagesList.length)];
$rootScope.setBackground = function(){
return {
'background-image':'url(assets/img/backgrounds/' + bgimg + ')'
}
}
答案 1 :(得分:2)
我可能会考虑使用ng-style
作为解决方案。
更改背景时在控制器内部,更新$scope
中由ng-style
元素引用的样式对象。
查看有关ng-style
here的一些信息。
<强>更新强>
请参阅以下plunkr http://plnkr.co/edit/dYIQ...,其中显示了ng-style
的简单用法。选中并取消选中该复选框后,背景颜色将在红色和蓝色之间变化。
对于您的问题,您的myStyle
对象可能类似于
var myStyle = {
background: 'url(path/to/' + bgimg + ')'
}
理想情况下,您不需要每次都创建myStyle
变量,但该示例为您提供了如何使用它的简单示例。
希望能帮到你!
答案 2 :(得分:1)
对您的元素使用ng-style
,这是如何设置它:
ng-style="{'background-image':'url(assets/img/backgrounds/{{bgimg}})'}"
这就是你的整个代码应该如何:
<body ng-style="{'background-image':'url(assets/img/backgrounds/{{bgimg}})'}">
<div class="view-container layer">
<div ng-view></div>
</div>
您可以在 ngStyle - directive in module ng 了解更多相关信息,然后您会发现如何使用它here。