在控制器中,我们有两个 ng 样式的对象。
$scope.rightpadding = {
paddingRight : '11px'
}
$scope.toppadding = {
paddingTop : '7px'
}
我们想在 ng 风格中使用这两者,像这样
不管用。
不可能像
$scope.style = { paddingRight : '11px', paddingTop : '7px' } 我们怎样才能做到这一点?
在控制器中,我们有两个 ng 样式的对象。
$scope.rightpadding = {
paddingRight : '11px'
}
$scope.toppadding = {
paddingTop : '7px'
}
我们想在 ng 风格中使用这两者,像这样
不管用。
不可能像
$scope.style = { paddingRight : '11px', paddingTop : '7px' } 我们怎样才能做到这一点?
您可以创建一种方法,该方法将通过组合多个方法的结果来创建对象并将其设置为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;
}
使用 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])">