2016-10-15 6 views
3

Я не могу связывать глобальную переменную.двусторонняя привязка с addListener в angularjs 2

это мой код.

mxEvent.addListener(img, 'click', 
      mxUtils.bind(this, function(evt:any) { 
       this.enableRightSideBar = true; 
       console.log(this.enableRightSideBar); 
      }.bind(this)) 
     ) 

console.log(this.enableRightSideBar, 'this.enableRightSideBar'); 

Показать «true», но это не отражено на html.

Пожалуйста, помогите мне.

+0

Просьба предоставить больше контекста. Где в Angular2 у вас есть этот код? Что и где «mxUtils»? –

+0

mxUtils является mxgraph класс –

+0

@ GünterZöchbauer Я пытаюсь это также: mxEvent.addListener (IMG 'нажмите', функция (событие: любой) { this.enableRightSideBar = истина; }) Не работает для меня. –

ответ

2

Существует не так много информации в вашем вопросе, но я предполагаю, что это то, что вам нужно сделать:

mxEvent.addListener(img, 'click', (event:any) => { this.enableRightSideBar = true; }) 

Обновление

Кажется, этот обратный вызов увольняют за пределами угловой зоны, так что вы можете использовать ChangeDetectorRef, чтобы обновить представление:

constructor(private cdRef: ChangeDetectorRef) {} 

... 
this.enableRightSideBar = true; 
this.cdRef.detectChanges(); 
+0

Я уже пробовал это –

+0

Когда я пытаюсь изменить this.enableRightSideBar = true; Использование события кнопки. Он работает отлично, но не работает с addListener. –

+0

Рассматривали ли вы предоставление дополнительной информации, как уже упоминалось, 2 раза выше? –

Смежные вопросы