Angular 移动项目文件后模式中出错

Angular 移动项目文件后模式中出错,angular,typescript,android-emulator,nativescript,angular2-nativescript,Angular,Typescript,Android Emulator,Nativescript,Angular2 Nativescript,在我移动了几个项目文件(包括modal)之后,我的nativescript项目中的modal出现了问题。我重写了导入。我还删除了所有已编译的js文件,以便它可以正确地重新编译我的项目 我真的不知道错误是什么意思,但它与模态显示函数有关,该函数返回模态集值的承诺 app/components/register/register.component.ts import { Component, ViewContainerRef } from "@angular/core"; import { Aut

在我移动了几个项目文件(包括modal)之后,我的nativescript项目中的modal出现了问题。我重写了导入。我还删除了所有已编译的js文件,以便它可以正确地重新编译我的项目

我真的不知道错误是什么意思,但它与模态显示函数有关,该函数返回模态集值的承诺

app/components/register/register.component.ts

import { Component, ViewContainerRef } from "@angular/core";
import { AuthService } from "../../shared/services/auth.service";
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
import { DatepickerModalComponent } from "../../shared/components/modals/datepicker/datepicker.modal.component";


@Component({
    selector: "register",
    moduleId: module.id,
    templateUrl: "./register.component.html"
})
export class RegisterComponent {

    private date;

    constructor(private auth: AuthService, private modal: ModalDialogService, private ref: ViewContainerRef) {}

    pickItem() {

    }

    pickDate() {
        let opts = {
            context: {},
            fullscreen: false,
            viewContainerRef: this.ref
        }
        this.modal.showModal(DatepickerModalComponent, opts).then(res => {
            let pickerDate = res;
            let dateString = pickerDate.toISOString().slice(0,10);
            this.date = dateString;
        });
    }

    submit() {

    }
}
import { Component } from '@angular/core';
import { ModalDialogParams } from 'nativescript-angular/directives/dialogs';


@Component({
    selector: "date-picker",
    moduleId: module.id,
    templateUrl: "./datepicker.modal.component.html"
})
export class DatepickerModalComponent {

    private date;

    constructor(private params: ModalDialogParams) {}

    close() {
        this.params.closeCallback(this.date);
    }

    onPickerLoaded() {
        this.date = new Date();
    }

    onDateChanged(args) {
        this.date = args.value
    }
}
问题在于
pickDate()
函数中的
this.modal.showModal()
,该函数是从注册页面调用的

app/shared/components/modals/datepicker/datepicker.modal.component.ts

import { Component, ViewContainerRef } from "@angular/core";
import { AuthService } from "../../shared/services/auth.service";
import { ModalDialogService } from "nativescript-angular/directives/dialogs";
import { DatepickerModalComponent } from "../../shared/components/modals/datepicker/datepicker.modal.component";


@Component({
    selector: "register",
    moduleId: module.id,
    templateUrl: "./register.component.html"
})
export class RegisterComponent {

    private date;

    constructor(private auth: AuthService, private modal: ModalDialogService, private ref: ViewContainerRef) {}

    pickItem() {

    }

    pickDate() {
        let opts = {
            context: {},
            fullscreen: false,
            viewContainerRef: this.ref
        }
        this.modal.showModal(DatepickerModalComponent, opts).then(res => {
            let pickerDate = res;
            let dateString = pickerDate.toISOString().slice(0,10);
            this.date = dateString;
        });
    }

    submit() {

    }
}
import { Component } from '@angular/core';
import { ModalDialogParams } from 'nativescript-angular/directives/dialogs';


@Component({
    selector: "date-picker",
    moduleId: module.id,
    templateUrl: "./datepicker.modal.component.html"
})
export class DatepickerModalComponent {

    private date;

    constructor(private params: ModalDialogParams) {}

    close() {
        this.params.closeCallback(this.date);
    }

    onPickerLoaded() {
        this.date = new Date();
    }

    onDateChanged(args) {
        this.date = args.value
    }
}
这里是模态本身,最重要的是传递模态集值的
close()
函数

错误

core.umd.js:1708 ERROR Error: Uncaught (in promise): TypeError: detachedProxy.getChildrenCount is not a function
TypeError: detachedProxy.getChildrenCount is not a function
    at file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/directives/dialogs.js:82:31
    at ZoneDelegate.invoke (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:388:26)
    at Object.onInvoke (file:///data/data/org.nativescript.secura/files/app/tns_modules/@angular/core/bundles/core.umd.js:3841:33)
    at ZoneDelegate.invoke (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:387:32)
    at Zone.run (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:138:43)
    at file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:883:34
    at ZoneDelegate.invokeTask (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:421:31)
    at Object.onInvokeTask (file:///data/data/org.nativescript.secura/files/app/tns_modules/@angular/core/bundles/core.umd.js:3832:33)
    at ZoneDelegate.invokeTask (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:420:36)
    at Zone.runTask (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:188:47)
    at drainMicroTaskQueue (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:595:35)
    at ZoneTask.invokeTask (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:500:21)
    at ZoneTask.invoke (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:485:48)
    at timer (file:///data/data/org.nativescript.secura/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:1561:29)
    at invoke (file:///data/data/org.nativescript.secura/files/app/tns_modules/tns-core-modules/timer/timer.js:19:48)

如果有人能帮助我,我会非常高兴。我在这方面花了很多时间。

在迁移到angular(>=7)和nativescript(>=5)的最新版本后,我遇到了同样的问题。在DatepickerModalComponent的模板中,确保他有以下组件:

 <DatePicker (loaded)="onDatePickerLoaded($event)"></DatePicker>


如果您使用的是最新的nativescript angular(6.x及以上版本),请使用此应用程序作为如何在angular Hi中创建和使用模式页面的参考,请在回答中添加一点关于代码将如何帮助操作的信息。谢谢:)