Как передать объект директиве NgStyle в Angular 2?

Я пытаюсь использовать NgStyle директива с переменной объекта, например:

@Component({
      template: `
            <div [ngStyle]="object">
              some test text
           </div>`
    })

export class example {
    private object: string = "{background-color: 'white'}";
}

Я также пробовал с object = "background-color: 'red'" и [ngStyle]="{object}", но кажется, что это не работает. Я получаю сообщение об ошибке:

Error: Uncaught (in promise): ошибка, вызванная: не удается найти другой поддерживающий объект " {color: 'white'}'(...) consoleError @ VM1051 zone.js@0.6.21?main=браузер: 346_loop_1 @ VM1051 зона.js@0.6.21?main=браузер: 371drainMicroTaskQueue @ VM1051 зона.js@0.6.21?main=браузер: 375ZoneTask.вызовите зону @ VM1051.js@0.6.21?main=браузер: 297

что я делаю не так?

2 ответов


не пройти string to [ngStyle], передать Object и это будет работать:

private object: Object = { 'background-color': 'red'};

у меня была аналогичная проблема с ngStyle и исправлена следующим образом:

[ngStyle]="{'top.px':dtPickerTop, 'left.px':dtPickerLeft}"

dtPickerTop & dtPickerLeft устанавливаются в моем компоненте на основе события click.

добавлять .px сделал свою работу, тогда как без него это не похоже.