2016-10-21 6 views
0

を必要と下図のように、私はセルのテンプレートを持っている:UIセルテンプレートがangularjs UIのグリッドでは、ダイナミックNGスタイル

cellTemplate : "<div class="progress"> <div class="progress-bar progress-bar-info" ></div> </div>" 

今、私は動的にcellTemplateすなわち、progress-bar-info用カラークラスを変更する必要があります。 (完全、不完全、進行中、または失敗)を基にした列の値、私はprogress-bar-success, progress-bar-info, progress-bar-warning, progress-bar-dangerをcellTemplateに持つ必要があります。どうすれば達成できますか?

私は次のテンプレートを試みたが、それはエラーを与えている:

cellTemplate: " <div class=\"progress margin-top-10\"> <div class=\"progress-bar\" ng-class=\"{progress-bar-success:{{row.entity.status}}==='complete', progress-bar-warning:{{row.entity.status}}==='incomplete', progress-bar-danger:{{row.entity.status}}==='fail'}\" ng-style=\"{width:'{{row.entity.val}}%'}\"></div> </div>", 

そして、次のようにエラーがある:

angular.js:13920 Error: [$parse:syntax] Syntax Error: Token '-' is unexpected, expecting [}] at column 10 of the expression [{progress-bar-success:complete==='complete', progress-bar-warning:complete==='incomplete', progress-bar-danger:complete==='fail'}] starting at [-bar-success:complete==='complete', progress-bar-warning:complete==='incomplete', progress-bar-danger:complete==='fail'}]. 

答えて

2

あなたはNG-クラス NG-クラス= "{Class1の式2:式1、クラス2}" を使用することができますあなたのケースでは、この

<div class="progress-bar" 
    ng-class="{'progress-bar-success':row.entity.status==='complete', 'progress-bar-warning':row.entity.status==='incomplete', 'progress-bar-danger':row.entity.status==='fail'}"> 
</div> 

のようなものを

をここにはプランカがあります。 https://plnkr.co/edit/ydY6eTFE7PbJ4j8VcM0g?p=preview

+0

取得しているエラーは、クラス名にハイフンがあるためです。あなたはそれらを ''の中に包み込むことができます。 – Rishabh

+0

私は\ 'progress-bar-success \'でそれを試しましたが、まだ動作していません。 – smart987

+0

あなたはどんなエラーを出していますか? plunkerのリンクを確認してください – Rishabh

0

はあなたのコントローラでこれを追加します。あなたのビューで

var myApp = angular.module('myApp'); 

myApp.controller('clickCtrl', function($scope){ 

    $scope.dynamicClass = "progress"; 

}); 

cellTemplate : "<div ng-class="dynamicClass"> <div class="progress-bar progress-bar-info" ></div> </div>" 

は、CSSを定義します。

.progress{ 
    background-color: orange !important; 
} 


.done{ 
    background-color: green!important; 
} 
+0

彼自身のCSSクラスを使いたいとは思っていませんが、それ以外の場合はこれが正しいです –

+0

では、progress-bar-infoを必要とし、動的に変更するにはprogress-bar-infoまたはprogress-bar-warning 、等。それは可能ですか? – smart987

+0

このコードスニペットから、彼はすべてを行い、その周りを遊ぶことができます。 – Jigar7521

0

独自のスタイルを使用する場合は、「.ui-grid-cell-contents」として定義しないでください。実際はrowTemplateでは動作しますが、cellTemplateでは動作しません。私はこれについていくつかの記事を見ていると、それはあなたにいくつかの問題を救うことができます。

関連する問題