【发布时间】:2017-07-04 13:37:41
【问题描述】:
我正在使用"@angular/cli": "1.0.2" 和angular version 4。
由于某种原因,我不得不为 select area 使用基于 jquery 的插件,因为我在 angular 中找不到等效插件。
这就是我的组件的样子
declare var $ : any;
//adding only necessary code
export class SelectComponent implements OnInit {
constructor(private _ngZone: NgZone) {}
public rowData: any = [];
ngOnInit() {
$('img#example').selectAreas({
minSize: [10, 10],
onChanged: this.debugQtyAreas,
width: 500,
areas: [{
x: 10,
y: 20,
width: 60,
height: 100,
}]
});
}
debugQtyAreas(event, id, areas) {
this.rowData = areas.map(function(obj) {
return {
left: obj.x,
top: obj.y,
id: obj.id
};
});
};
}
我的 jquery 是如何工作的,我可以选择图像上的区域。
但是我推送/分配给数组 rowData 的值在视图中没有更新
我尝试在互联网上搜索,发现此解决方案适用于所有人,但不适用于我
this._ngZone.run(() => {
//running code inside this
})
但我在这里遇到错误
无法读取未定义的属性“运行”
当我尝试推送数据而不是像下面这样从地图分配数据时,rowData 也发生了同样的事情
for(var i = 0; i < areas.length; i++){
this.rowData.push({
left: areas[i].x,
top: areas[i].y,
id: obj.id
});
}
它说Cannot read property 'push' of undefined
【问题讨论】:
-
你导入
NgZone了吗? -
import { NgZone } from '@angular/core';这个?是的。 -
显示完整代码。我相信我知道为什么。
标签: javascript jquery angular