2013-09-24 51 views
1

我有一個可以容納圖像的url(bgUrl)的範圍的屬性。現在我想用這個圖片作爲'div'的背景圖片。但是,如果屬性未定義,我想使用由bg-image類定義的默認圖像。現在我可以像angularjs:只有在ngStyle上設置背景圖像,如果url被定義

<img ng-show="bgUrl" ng-src="bgUrl"/> 
<div ng-hide="bgUrl" class="bg-image"/> 

但是,我想將它合併爲一個元素。我試過這樣的事情

​​

我剛剛從谷歌複製了一些代碼(不知道這是否能工作)。有一點很明顯,但這不起作用:) 什麼是解決這個問題的好方法,我的解決方案能工作嗎?

回答

0

正確的做法是一個指令方式:

app.directive('bg', function() { 
    return { 
     link: function(scope, element, attrs) { 
      if(scope.bgUrl){ 
      element.css("background-image","url("+scope.bgUrl+")"); 
      } else { 
      element.addClass("bg-default");    
      } 
     } 
    } 
}); 

請看下圖:http://plnkr.co/edit/xYEjpp?p=preview

+0

不錯,我想你是對的!那是我將要使用的那個。只是好奇,是我試過的東西(只有一個div的解決方案)?你知道嗎? –

+0

@JeanlucaScaljeri說實話,我不知道如何使用你的例子中的語法。至於我這是不可讀和太多的邏輯/代碼在視圖中.. – Cherniv