Javascript 如何为AngularJS中的单个元素使用多个ng样式的对象

Javascript 如何为AngularJS中的单个元素使用多个ng样式的对象,javascript,angularjs,Javascript,Angularjs,我的控制器中有两个ng style对象 $scope.leftpadding = { paddingLeft : '7px' } $scope.toppadding = { paddingTop : '7px' } 我想在ng样式中使用这两个对象 <h5 ng-style="toppadding leftpadding"> 有没有办法做到这一点 我不确定你能不能用那种方式使用ngStyle。试试这个: ng-style="{'padding-top': pad

我的控制器中有两个
ng style
对象

$scope.leftpadding = {
    paddingLeft : '7px'
}

$scope.toppadding = {
    paddingTop : '7px'
}
我想在
ng样式中使用这两个对象

<h5 ng-style="toppadding leftpadding"> 

有没有办法做到这一点

我不确定你能不能用那种方式使用
ngStyle
。试试这个:

ng-style="{'padding-top': paddingTop, 'padding-bottom': paddingBottom}" 

并具有
$scope.paddingTop
以具有
padding top
所需的任何值,
padding bottom

在scope中创建一个通用方法

$scope.margeStyleObj = function(objectList) {
    var obj = {};
    objectList.forEach(function(x) {
      for (var i in x)
        obj[i] = x[i];
    });
    return obj;
  }
然后从html调用

<h5 ng-style="margeStyleObj([toppadding,leftpadding])"> 

这将使我的代码变得庞大。这只是我在问题中提到的一个例子,一个元素可能有5-6种样式。是的,我理解,让我再深入一点。第一个对象被应用,第二个是你在控制器中没有定义底部填充,在你的问题中它是左填充…@adityaponkhe,看起来不像。它们支持ngClass的阵列,但不支持ngStyle。
<h5 ng-style="margeStyleObj([toppadding,leftpadding])"> 
  $scope.margeStyleObj = function(objectList) {
    var obj = {};
    objectList.forEach(function(x) {
        angular.extend(obj,x);
    });
    return obj;
  }