Я хочу установить две функции в ngStyle. Я пробовал [ngStyle]="setAlignmentStyle(element.alignment);setShapeStyle(element.shape);"
, но он дает ошибки анализа шаблонов.Angular2 две функции в NgStyle
Как установить две функции в 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 (выравнивание)' и 'setShapeStyle (shape)' вместе давали бы один объединенный стиль, e. g., '[ngStyle] =" setAlignmentStyle ('center'); setShapeStyle ('circle'); "' даст 'margin: 0 auto; border-radius: 50% ' –
Это не сработает. Вам нужно вызвать одну функцию, которая возвращает один объект со свойствами обоих. Я бы предложил не вызывать функцию вообще и просто назначить объект свойству в вашем компоненте и привязать его к этому свойству. –