2

我正在使用 ionic2 和 angular2 与 javascript(不是打字稿)我有 2 个输入:文本和选择。如果 select.val() == 'more',我想隐藏输入文本。我怎么做?

这是我的代码:

        <ion-item class="sq-p-input-price" *ngIf="typePriceMore()">
            <ion-label for="price" class="sr-only">Price</ion-label>
            <ion-input id="price" type="number" value="" placeholder="Price" required></ion-input>
        </ion-item>

        <ion-item class="sq-p-input-type">
            <ion-label class="sr-only" for="type">Tipo</ion-label>
            <ion-select [(ngModel)]="priceTypeModel" id="type" required>
                <ion-option *ngFor="#option of priceType"  value="{{option.value}}">{{option.key}}</ion-option>
            </ion-select>
        </ion-item>

#option 上的数组是:

    this.priceType = [
        {
            key: 'fixo',
            value: 'fix'
        },
        {
            key: '/hora',
            value: 'hourly'
        },
        {
            key: 'Preciso mais informação',
            value: 'more'
        },
    ]

除此之外,我还有 2 个想法难以完成:

1 - 为选择设置一个初始值。使用 selected 不起作用,这会导致我在加载页面时始终为空。

2 - 当 input.text (price) 被隐藏时,移除属性“required”。

谢谢 :)

4

1 回答 1

1

要在 上设置初始值ngModel,您应该在constructor()

constructor(){
  priceTypeModel = 'more';
}

要隐藏元素,有两个选项

  1. [hidden]属性(如果true,设置display:none在元素上,停留在DOM

<ion-item class="sq-p-input-price" [hidden]="priceTypeModel === 'more'">

    <ion-label for="price" class="sr-only">Price</ion-label>
    <ion-input id="price" type="number" value="" placeholder="Price"></ion-input>
</ion-item>
  1. *ngIf指令(如果false,从 中删除元素DOM

<ion-item class="sq-p-input-price" *ngIf="priceTypeModel !== 'more'">

    <ion-label for="price" class="sr-only">Price</ion-label>
    <ion-input id="price" type="number" value="" placeholder="Price"></ion-input>
</ion-item>

您应该*ngIf在下面的情况下使用,它会从 DOM 中删除元素,因此不再需要required验证

2 - 当 input.text (price) 被隐藏时,移除属性“required”。

于 2016-05-19T11:19:00.800 回答