【发布时间】:2018-08-14 07:48:40
【问题描述】:
我正在尝试处理Nativescript handling back button 中所示的“返回”按钮。提出了两种方法,并且都运行正常。我的问题是如何与组件的本地数据进行交互,因为 'android.on' 是一个全局事件。
当我的组件再次从另一个显示器(用户通过点击“返回”按钮关闭该显示器)接收控制时,我想要做的是刷新显示器(只需更新 ngFor 中引用的列表的模型)。
我一直在尝试访问“activityBackPressedEvent”属性,但找不到访问组件数据(“shopList”)的方法。
import { Component, OnInit, ViewChild } from "@angular/core";
import { Router } from "@angular/router";
import { RouterExtensions } from "nativescript-angular/router";
import { Page } from "ui/page";
import { ObservableArray } from "tns-core-modules/data/observable-array";
import { TokenModel } from "nativescript-ui-autocomplete";
import { RadAutoCompleteTextViewComponent } from "nativescript-ui-autocomplete/angular";
import { Utils } from '../../utils';
import * as SocialShare from "nativescript-social-share";
import { android, AndroidApplication, AndroidActivityBackPressedEventData } from "application";
import * as application from "tns-core-modules/application";
import {topmost} from "ui/frame";
@Component({
//selector: "Shopping",
moduleId: module.id,
templateUrl: "./shopping.component.html",
styleUrls: ['./shopping.component.css']
})
export class ShoppingComponent implements OnInit {
shopList: string[] = [];
constructor(private page: Page, private router: Router, private routerExt: RouterExtensions) {
this.shopList = [];
this.shopList.push ('sugar');
this.shopList.push ('milk');
}
reload(args: AndroidActivityBackPressedEventData): void {
console.log ('back pressed');
console.log (this.shopList); // <<--- "undefined"
}
ngOnInit(): void {
android.on(AndroidApplication.activityBackPressedEvent, this.reload);
}
}
【问题讨论】:
标签: nativescript angular2-nativescript nativescript-angular