Angular2:[(ngModel)] with ion-select - show div取决于选择值

时间:2016-05-19 11:02:46

标签: angular required angular2-ngmodel ionic2-select

我正在使用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”。

谢谢:)

1 个答案:

答案 0 :(得分:1)

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

中定义它
constructor(){
  priceTypeModel = 'more';
}

要隐藏元素,有两个选项

  1. [hidden]属性(如果true,在元素上设置display:none,保留在DOM
  2. <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删除元素)
    2. <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)时,删除属性   &#34;需&#34;