Aut*_*cus 5 angularjs angular-ui angularjs-scope angularjs-ng-repeat
我正在向我的div添加背景图像
ng-style="{'background-image' : 'url('+ myvariable.for.image +')'}">
Run Code Online (Sandbox Code Playgroud)
其中myvariable.for.image是一个像/ examplesite/image/id的url
这样可以正常工作,但有一个例外,如果图像不在那里它只是没有做任何事情而我的背景看起来太过bla ...如果图像不存在我希望能够用默认图像替换它.
但我似乎无法弄清楚如何
而不是ngStyle我为此使用自定义指令.如下.这将检查是否提供了属性,如果是,则尝试加载该图像.如果它加载图像,那么我们将背景图像设置为它,否则我们使用默认图像.
myApp.directive('bgImage', function () {
return {
link: function(scope, element, attr) {
attr.$observe('bgImage', function() {
if (!attr.bgImage) {
// No attribute specified, so use default
element.css("background-image","url("+scope.defaultImage+")");
} else {
var image = new Image();
image.src = attr.bgImage;
image.onload = function() {
//Image loaded- set the background image to it
element.css("background-image","url("+attr.bgImage+")");
};
image.onerror = function() {
//Image failed to load- use default
element.css("background-image","url("+scope.defaultImage+")");
};
}
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
像这样使用:
<div bg-image="{{person.src}}">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3193 次 |
| 最近记录: |