Angular2 数组对象
Posted
技术标签:
【中文标题】Angular2 数组对象【英文标题】:Angular2 Array objects 【发布时间】:2017-05-08 11:47:30 【问题描述】:我想添加一个对象数组,但它不起作用:Can not set property '0' of undefined
我尝试放入 this.positions [0] = PositionMap 对象
为了更好的可读性,我已经减小了代码的大小,但其余的都可以
这是我的代码:
import Component, ViewChild, ElementRef from '@angular/core';
import NavController from 'ionic-angular';
import FormBuilder, FormGroup, Validators from '@angular/forms';
import Geolocation from 'ionic-native';
declare var google;
@Component(
selector: 'page-home',
templateUrl: 'home.html'
)
export class HomePage
positions: PositionMap[] = [];
@ViewChild('map') mapElement: ElementRef;
constructor(public navCtrl: NavController)
this.positions = [];
ionViewDidLoad()
this.loadMap();
this.autocomplete();
autocomplete()
autocompleteDepart.addListener('place_changed', function()
var place = autocompleteDepart.getPlace();
let tmpPosition = new PositionMap(place.geometry.location.lat(), place.geometry.location.lng());
this.positions[0] = (tmpPosition);
return;
);
export class PositionMap
latitude: number;
longitude: number;
constructor(_latitude: number, _longitude: number)
this.latitude = _latitude;
this.longitude = _longitude;
我的表在类和构造函数中声明得很好,但在函数中却不知道。
【问题讨论】:
【参考方案1】:您正在使用来自回调函数的this
。这个回调函数必须先绑定到this
。最简单的方法是使用箭头函数:
autocompleteDepart.addListener('place_changed', () =>
...
);
【讨论】:
以上是关于Angular2 数组对象的主要内容,如果未能解决你的问题,请参考以下文章