【发布时间】:2016-11-18 18:31:33
【问题描述】:
我想在 ngStyle 中设置两个函数。我试过[ngStyle]="setAlignmentStyle(element.alignment);setShapeStyle(element.shape);",但它给出了模板解析错误。
在ngStyle中应该如何设置两个函数?
page.component.ts
export class PageComponent {
// ...
setAlignmentStyle(alignment) {
let styles = {
'margin': alignment === 'center' ? '0 auto' : '',
'float': alignment === 'right' ? 'right' : (alignment === 'left' ? 'left' : ''),
};
return styles;
}
setShapeStyle(shape) {
let styles = {
'border-radius': shape === 'circle' ? '50%' : '',
};
return styles;
}
}
page.component.html
<div [ngStyle]="setAlignmentStyle(element.alignment);setShapeStyle(element.shape);">{{element.text}}</div>
【问题讨论】:
-
预期的行为是什么?您不能返回两个对象并期望
ngStyle将它们都应用,这是行不通的。您必须自己将它们组合成一个对象。 -
我需要
setAlignmentStyle(alignment)和setShapeStyle(shape)一起提供一种合并样式,例如。 g.,[ngStyle]="setAlignmentStyle('center');setShapeStyle('circle');"将给margin: 0 auto; border-radius: 50% -
那行不通。您需要调用一个函数,该函数返回一个具有两者属性的对象。我建议根本不调用函数,只需将对象分配给组件中的属性并绑定到该属性。
标签: html angular typescript ng-style