2

在控制器中,我们有两个 ng 样式的对象。

$scope.rightpadding = {
    paddingRight : '11px'
}



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

我们想在 ng 风格中使用这两者,像这样

不管用。

不可能像

$scope.style = { paddingRight : '11px', paddingTop : '7px' } 我们怎样才能做到这一点?

4

2 回答 2

2

您可以创建一种方法,该方法将通过组合多个方法的结果来创建对象并将其设置为ng-style对象。

paddingRight应该是padding-right&paddingTop应该是padding-top

HTML

ng-style="setStyle()"

代码

$scope.rightpadding = function() {
  return {
    'padding-right': '11px'
  };
}

$scope.toppadding = function() {
  return {
    'padding-top': '7px'
  };
}

$scope.setStyle = function() {
  var object = {};
  angular.extend(object, $scope.rightpadding())
  angular.extend(object, $scope.toppadding())
  return object;
}
于 2016-01-05T09:47:36.373 回答
1

使用 angular.extend 很好,它也可以工作。但是,如果我们不想使用它,那么这是另一种方式

在范围内创建通用方法

$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,rightpadding])"> 
于 2016-01-05T10:07:36.507 回答