0

公式リリースで、ネイティブスクリプトをangular 2で動作させるのに苦労しています。古き良き派閥のWeb角度の問題はありませんが、ネイティブスクリプトは別の話です。NativeScript で Hello World が機能するのはなぜですか? 何も見えません。

ありがとう

家:

import {Component} from "@angular/core";
import { Router } from "@angular/router";

@Component({
    selector: "home",
    template: "hello",
})
export class HomeComponent {
    constructor(private router: Router){
    }
}

アプリ

import {Component} from "@angular/core";

@Component({
    selector: "main",
    template: "<page-router-outlet></page-router-outlet>",
})
export class AppComponent {

}

ルート:

import { HomeComponent } from "./pages/home/home.component";

export const routes = [
  { path: "", component: HomeComponent }
];

export const navigatableComponents = [

    HomeComponent
];

モジュール:

import { NgModule } from "@angular/core";
import { NativeScriptFormsModule } from "nativescript-angular/forms";
import { NativeScriptHttpModule } from "nativescript-angular/http";
import { NativeScriptModule } from "nativescript-angular/platform";
import { NativeScriptRouterModule } from "nativescript-angular/router";
import { AppComponent } from "./app.component";
import { HomeComponent } from "./pages/home/home.component";
import { routes, navigatableComponents } from "./app.routes";


@NgModule({
  imports: [
    NativeScriptModule,
    NativeScriptFormsModule,
    NativeScriptHttpModule,
    NativeScriptRouterModule,
    NativeScriptRouterModule.forRoot(routes)
  ],
  declarations: [AppComponent,
   ...navigatableComponents ],
  bootstrap: [AppComponent]
})
export class AppModule {}



Executing before-prepare hook from /Users/Documents/frontend/bootops-mobile-v1/hooks/before-prepare/nativescript-dev-typescript.js
Project successfully prepared (ios)
Transferring project files...
Successfully transferred all files.
Applying changes...
Sep 17 23:05:18 Davids-iMac com.apple.CoreSimulator.SimDevice.D28D29C3-07B6-4B60-B4B0-711475C505DE.launchd_sim[19187] (UIKitApplication:org.nativescript.bootopsmobilev1[0x7351][20309]): Service exited due to Terminated: 15
Successfully synced application org.nativescript.bootopsmobilev1 on device D28D29C3-07B6-4B60-B4B0-711475C505DE.
Sep 17 23:05:19 Davids-iMac bootopsmobilev1[20349]: objc[20349]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x124c81910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x124aab210). One of the two will be used. Which one is undefined.
Sep 17 23:05:19 Davids-iMac bootopsmobilev1[20349]: assertion failed: 15G1004 14A345: libxpc.dylib + 62597 [37A9DF49-35C1-3D93-B854-B35CACF0100F]: 0x7d
Sep 17 23:05:19 Davids-iMac bootopsmobilev1[20349]: CONSOLE LOG file:///app/tns_modules/@angular/core/bundles/core.umd.js:210:20: Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
4

2 に答える 2

0

HomeComponent templateComponent 宣言は次のようになります。

@Component({
    selector: "home",
    template: `<Label text="hello"></Label>`,
})
export class HomeComponent {
    constructor(private router: Router){
    }
}

この背後にある理由は、NativeScript には webview がなく、すべてネイティブ コンポーネントであるという事実です。したがって、「こんにちは」テキストをレンダリングするには、NativeScript Labelを使用する必要があります。これはすべてNativeScript + Angular 2に当てはまります.Webブラウザーはそのテキストをレンダリングする方法を知っているため、コードスニペットはAngular 2 Webで正しく機能しますが、iOSではNativeScripts Angular 2レンダラーはテキストを直接レンダリングする方法を知りません.および Android にはそのようなレンダリングはなく、Labelタグを介してその方法を伝える必要があります。

于 2016-09-18T09:46:28.893 に答える
0

index.html には、<selector-for-the-page></selector-for-the-page>別のセレクターがある場合があります。

于 2016-12-13T13:23:59.343 に答える