【发布时间】:2016-04-08 03:59:39
【问题描述】:
我已经开始探索 Angular2(我将使用 Angular1 和一些 React 背景),但遇到了一个问题。
我想将某些击键绑定到我的组件中的操作,所以我决定使用 Angular2 生命周期来绑定/取消绑定操作。
但是,如果我在 Mousetrap 回调中执行某些操作,它会起作用,但它不会被渲染,并且在运行摘要循环之前更改是不可见的。
我是否需要显式运行某些东西来更新视图
有人可以帮我弄清楚发生了什么吗? 任何帮助将不胜感激。
import {Component} from 'angular2/core';
const Mousetrap = require('mousetrap');
@Component({
template: `<div>
Video template: Mode {{ mode }}
<input type="number" [(ngModel)]="mode"/>
</div>`
})
export class Video {
public mode: number;
constructor() {
this.mode = 0;
}
ngOnInit() {
console.log('hello Video component');
Mousetrap.bind('d', () => console.log('this.mode=', this.mode));
Mousetrap.bind('i', () => this.incrementMode()); // doesn't work
this.incrementMode(); // works
this.incrementMode(); // works
setTimeout(() => this.incrementMode(), 4000); // works
}
incrementMode() {
console.log('incMode', this.mode++);
};
ngOnDestroy() {
console.log('bye bye Video component');
Mousetrap.unbind(['d', 'i']);
}
}
【问题讨论】:
标签: angular