web-dev-qa-db-ja.com

関数によってngスタイルのマルチCSSルールを取得するにはどうすればよいですか?

angularフォームテンプレートのHTMLタグにマルチCSSルールを適用する必要があります。

<div class="form-control" id="data.objectStyle"  
  ng-model="data.type" 
  ng-style="getStyle(data.objectStyle)">
{{data.objectStyle.title}}
</div>

コントローラのgetStyle関数:

$scope.getStyle = function (taskType) {
    return {
         background-color:taskType.backColor,
         color: taskType.color,
         font-size:taskType.fontSize,
         font-family:taskType.font
    }
)};

taskTypeオブジェクト:

{
    backColor:'#006',
    color:'#56DA',
    fontSize:12,
    font:'New Times Roman'
}

getStyle関数はスタイルを返しません!何をすべきか?

14
sajjad

編集

docs は、無効なJSONオブジェクトキーではないように、キーを引用符で囲む必要があることを指定します。

return {
     "background-color": taskType.backColor,
     "color": taskType.color,
     "font-size":taskType.fontSize,
     "font-family":taskType.font
}

古い回答(ngスタイルを使用しない)

ng-style を使用したことはありませんが、オブジェクトを取得するようには見えません。むしろそれはng-classと同等ですが、単一のスタイルのためのものです。

関数を次のように変更してみてください:

$scope.getStyle = function (taskType) {

        return {
         "background-color:"+taskType.backColor+
         ";color:"+ taskType.color+
         ";font-size:"+taskType.fontSize+
         ";font-family:"+taskType.font+";";
    }
)};

バインドで通常のスタイルタグを使用するためのhtml:

<div class="form-control" id="data.objectStyle"  
ng-model="data.type" style="{{getStyle(data.objectStyle)}}">
13