0

NativeScript 2.0 CSS とカスタム コンポーネントに問題があります。私の知識には巨大なギャップがあるようで、明らかでない重要な何かが欠けています。

で作成された空の NS 2.0 アプリを取得します

$ tns create test --ng

app.cssの内容を削除します(副作用を防ぐため)。

app.component.ts を変更します。

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

@Component({
    selector: "my-app",
    template: `
    <StackLayout orientation="vertical">
        <Label text="Label in first StackLayout"></Label>
        <StackLayout orientation="vertical" 
                     style="width: 80%;background-color: red;">
            <Label text="Label in second StackLayout"></Label>
        </StackLayout>
    </StackLayout>
    `,

})
export class AppComponent {}

かなり基本的なもの。次の期待される結果が生成されます。

期待される結果


その内側の StackLayout を再利用可能なコンポーネントに変換してみましょう。

custom.component.ts

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

@Component({
    selector: "Custom",
    template: `
    <StackLayout orientation="vertical" 
                 style="width: 80%;background-color: red;">
        <Label text="Label in second StackLayout"></Label>
    </StackLayout>
    `,

})
export class CustomComponent {}

app.component.ts を変更します

import {Component} from "@angular/core";
import {CustomComponent} from "./custom.component"

@Component({
    selector: "my-app",
    directives: [CustomComponent],
    template: `
    <StackLayout orientation="vertical">
        <Label text="Label in first StackLayout"></Label>
        <Custom></Custom>
    </StackLayout>
    `,

})
export class AppComponent {}

出力は次のようになります。

ここに画像の説明を入力

背景色は適用されますが、幅は適用されません。

私も試しました:

<Custom style="width: 80%;"></Custom>  /* Does this even make sense? */

無駄に。

パーセンテージは実験的なものだと認識していますが、エラーは NativeScript ではなく私のコードにあると思われます。

どこで私は間違えましたか?

4

1 に答える 1