Nativescript angular - модуль, содержащий данные, завершает работу в ios без ошибок! ленивый загрузочный модуль - PullRequest
0 голосов
/ 14 января 2019

Я занимаюсь разработкой приложения на языке nativescript, которое содержит форму данных в модуле, и вызываю этот модуль, используя технику ленивой загрузки. Жизнь прекрасна в Android, но приложение закрывается сразу, когда я открываю этот модуль в ios без какого-либо журнала ошибок! Код очень прост и понятен, я не вижу, в чем проблема!

test.component.ts

import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
import { RadDataForm, DataFormEventData } from "nativescript-ui-dataform";
import { UserAddress } from "../../shared/data-services/address";
@Component({
    selector: "test",
    moduleId: module.id,
    templateUrl: "./test.component.html",
    styleUrls:["./test.component.css"]
})
export class TestComponent implements OnInit {
    private _userAddress: UserAddress;
    constructor() {
     } 
    ngOnInit() {
        this._userAddress = new UserAddress();
    }
    get userAddress(): UserAddress {
        return this._userAddress;
    }
}

test.component.html

<ActionBar class="action-bar">
        <NavigationButton [nsRouterLink]="['../../home']" android.systemIcon="ic_menu_back"></NavigationButton>
        <Label class="action-bar-title" text="Test"></Label>
</ActionBar>
<ScrollView tkExampleTitle tkToggleNavButton>
    <StackLayout>
        <RadDataForm tkExampleTitle tkToggleNavButton [source]="userAddress">
        </RadDataForm>
    </StackLayout>
</ScrollView>

Маршрутизация этого модуля Signup-routing.module.ts

import { NgModule } from "@angular/core";
import { Routes } from "@angular/router";
import { NativeScriptRouterModule } from "nativescript-angular/router";


import { ItemsComponent } from "./test/test.component";


export const COMPONENTS = [ItemsComponent ];

const routes: Routes = [

    { path: "", redirectTo: "testInfo"  },
    { path: "testInfo", component: testComponent }
];

@NgModule({
    imports: [NativeScriptRouterModule.forChild(routes)],  // set the lazy loaded routes using forChild
    exports: [NativeScriptRouterModule]
})
export class SignupRoutingModule {}

Тогда мы имеем signup.module.ts

import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { NativeScriptCommonModule } from "nativescript-angular/common";
import { COMPONENTS, SignupRoutingModule } from "./signup-routing.module";
import { NativeScriptFormsModule } from "nativescript-angular/forms";
import { NativeScriptUIDataFormModule } from "nativescript-ui-dataform/angular";


@NgModule({
    imports: [
       NativeScriptCommonModule, // for rednering actionbar with lazy laoding
       NativeScriptFormsModule,
       SignupRoutingModule,
       NativeScriptUIDataFormModule

    ],
    declarations: [
        ...COMPONENTS
    ],
   // providers: [SignupService],
    schemas: [
        NO_ERRORS_SCHEMA
    ]
})
/*
Pass your application module to the bootstrapModule function located in main.ts to start your app
*/
export class SignupModule { }

И модуль вызывается с использованием отложенной загрузки в базовом файле маршрутизации, например:

{ path: "signup", loadChildren: "~/app/signup/signup.module#SignupModule", outlet: "homeTab"  } 

Помощь приветствуется! КОД НА GitHub https://github.com/lighttiger/lazy

...