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;
}