68

私は、ng-styleの角度を使用して背景画像を適用しようとしています(前のカスタムディレクティブと同じ動作を試みました)。働いているようだ。anglejs ng-style:background-imageが動作していない

私が背景色を試しても、うまくいきます。私もリモートソースとローカルソースを試しましたhttp://lorempixel.com/g/400/200/sports/、どちらもうまくいきませんでした。 background-imageため

答えて

93

正しい構文は次のとおりです。NG-スタイルに

background-image: url("path_to_image"); 

正しい構文は次のとおりです。

ng-style="{'background-image':'url(https://www.google.com/images/srpr/logo4w.png)'}"> 
+6

私は 'url'を忘れてしまいました:) thanks @Stewie – Roland

+0

btw、' {{products.products [currenRoute] .desc}} '; htmlで? – Roland

+0

'currentRoute'はルートからのプロダクトIDですか?その場合、$ routeParamsサービスをコントローラに注入すると、あなたのルートが '/ products /:'として定義されているので、あなたのID( '$ scope.productId = $ routeParams.id')への参照が保持されます。 id '。しかし、あなたはそのために新しい質問をしたいかもしれません。 – Stewie

159

あなたは動的な値を解析するために、以下を使用することができます。

ng-style="{'background-image':'url({{myBackgroundUrl}})'}" 

かこのように:

あなたは、サーバーが返す(item.id)と、このような構造を持っているのを待っているデータがある場合は
ng-style="{'background-image': 'url(' + myBackgroundUrl + ')'}" 
+11

これは実際には最良の答えです(または少なくとも私の問題に...) – standup75

+5

また、中括弧を使って式を書くこともできます: 'data-ng-style =" {'background-image': 'url(img/products/{{product.img}}) '} "' –

+1

これは正解です。 – Nyxynyx

14

ng-style="{'background-image':'url(https://www.myImageplusitsid/{{item.id}})'}" 

あなたがそうでなければng-if="item.id"

のようなものを追加していることを確認します2つのリクエスト、または1つのリクエストがあります。これはIE11

ちょうどあなたがまたにあなたのオブジェクトを定義することができますレコードの

HTML

<div ng-style="getBackgroundStyle(imagepath)"></div> 

JS

$scope.getBackgroundStyle = function(imagepath){ 
    return { 
     'background-image':'url(' + imagepath + ')' 
    } 
} 
+2

良い点:) +1 – Roland

10

このようなコントローラ:

this.styleDiv = {color: '', backgroundColor:'', backgroundImage : '' }; 

、その後、あなたは直接オブジェクトのプロパティを変更する関数を定義することができます

this.changeBackgroundImage = function(){ 
     this.styleDiv.backgroundImage = 'url('+this.backgroundImage+')'; 
    } 

あなたがdinamicalyあなたのスタイルを変更することができる方法でそれを行います。

+2

あなたは私の人生を今すぐ保存しました。ありがとうございました..なぜ私のngスタイルがIE 11で表示されていないのか理解しようと時間を費やしました。 ! – w3bMak3r

+0

他のすべての例や "公式な方法"が無視されるように見えるだけでなく、クロム(ubuntu)でも働いたのは唯一のものでした。スタイルは変更されますが、効果はありません。 – davidkonrad

0

での作業を取得するために苦労している人のために

1

これは私のために働いた、中括弧は必要ありません。

ng-style="{'background-image':'url(../../../app/img/notification/'+notification.icon+'.png)'}" 

notification.iconここはスコープ変数です。

1

我々はCSSの背景や 背景画像の属性に行く必要動的な値を持っている場合、それはちょうど少しトリッキー に指定することができます。

コントローラにgetImage()関数があるとします。この 関数は、 url(icons/pen.png)のような形式の文字列を返します。我々が行う場合は、ngStyle宣言は前と まったく同じ方法で指定されています。

ng-style="{ 'background-image': getImage() }" 

を背景画像のキー名の前後に引用符を入れていることを確認してください。 これは、有効なJavascriptオブジェクト・キーとしてフォーマットする必要があることを覚えておいてください。

+0

引用元は何ですか? – Manas

関連する問題