如何在ng-style中为AngularJS中的单个元素使用多个对象

时间:2015-12-22 05:34:09

标签: javascript angularjs

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

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

$scope.toppadding = {
    paddingTop : '7px'
}

我想在ng-style中使用这两个对象

<h5 ng-style="toppadding leftpadding"> 

不工作。因为这两个对象都没有在风格中应用。

它可能不像

$scope.style = {
  paddingLeft : '7px',
  paddingTop : '7px'
}

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

在范围

中创建一个通用方法
$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])"> 

JSFIDDLE

您还可以使用 angular.extend

喜欢这个

  $scope.margeStyleObj = function(objectList) {
    var obj = {};
    objectList.forEach(function(x) {
        angular.extend(obj,x);
    });
    return obj;
  }

JSFIDDLE

答案 1 :(得分:2)

我不确定您是否可以这样使用ngStyle。试试这个:

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

$scope.paddingToppadding-toppadding-bottom提供您想要的任何价值。