2016-08-22 3 views
2

私は私のメインのhtml私のカード情報ディレクティブで を変更するCSS(またはクラス)

<span ng-repeat="acqui in acquis"> 
    <card-info class="card" acqui="acqui"></card-info> 
</span> 

(別のHTMLでNGリピートからのデータを持っていますファイル)私は値が未公開である場合は、値の色を変更したい

<h6 class="buyer">Acquired By: <strong>{{acqui.buyer.name}}</strong></h6> 
<h2 class="seller">{{acqui.seller.name}}</h2> 
<h1 id="value" class="value">{{acqui.value | shortNumber}}</h1> 

データを表示するいくつかの要素を持っています。クラスを "value"から "undis"に変更することができますが、CSSを上書きして色を変えるだけで大​​丈夫です。

私は既にいくつかの方法を試しましたが、いずれもまだ成功していません。

私は私の指示でそれを検出しようとした:

acquisitionApp.directive('cardInfo', function() { 
return { 
    restric: 'E', 
    scope: { 
     acqui: '=' 
    }, 
    link: function(scope, element, attrs) { 
     scope.$watch(attrs.cardInfo, function(value) { 
      if(value.value === "undisclosed") { 
       element.css("color", "#FF2100"); 
      } 
     }); 
    }, 
    templateUrl: 'js/directives/card.html' 
}; 

});

が、値が定義されていない(私は平均値、value.valueない)

私も、私は

acquisitionApp.controller('acquiController', ['$scope','$http','acquiFactory', function($scope, $http, acquiFactory) { 
acquiFactory.get() 
    .success(function(data) { 
     angular.forEach(data, function(value, key) { 
      if(data[key].value === -1) { 
       data[key].value = "undisclosed"; 
       angular.element(document.querySelector('#value')).css("color", "#FF2100"); 
      } 
     }) 
     $scope.acquis = data; 
    }); 

最初の場所

に未定義の値を設定するしかし、それは」doesnの私のコントローラで試してみました何かを変える。私が本当にこれに直面しているかどうかは分かりません。どうすればこれを達成できますか?

答えて

2

恐らく、あなたは命令のCSSを変更しようとしているのです。このような<h1>要素にはng-styleを使用できませんでしたか?

<h1 id="value" class="value" ng-style="{ color: acqui.value=='undisclosed'? '#FF2100':'' }">{{acqui.value | shortNumber}}</h1> 

これはacqui.valueの値をチェックし、それがundisclosedだか何の値を使用しない場合は#FF2100のいずれかを使用します。

+0

すごい!それはまさに私がやろうとしていたことです。間違いなく過度に複雑なもの。質問をフォローしてください。同じことをして、acqui.buyer.name.lengthが値よりも大きいかどうかを調べることができますか?もしそうなら、フォントサイズを小さくしますか? –

+0

私はそれを考え出しませんでした。ありがとうございました! –

+0

この回答を見つけた将来のGoogle社員にとっては、そうすることができます。 'ng-style =" {'font-size':acqui.buyer.name.length> 100? '8pt': '10pt'} '' –

関連する問題