ионный переключатель и ион-дата и время пустые до щелчка - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть чистый компонент, принимающий объект param в качестве входных данных и использующий его для визуализации формы в Ionic.

Форма выглядит пустой до щелчка. После щелчка он заполняется в соответствии с входными данными.

Вот пример:

@Component({
    selector: "my-pure-component",
    templateUrl: "template.html",
    changeDetection: ChangeDetectionStrategy.OnPush
})
export class ObservationComponent {
    @Input()
    public param;
}

Шаблон:

<ion-item-group id="toggleParameters">
    <ion-row align-items-center justify-content-center>
        <ion-col col-auto>
            <p ion-text color="neutral">{{param.notify ? 'yes' : 'no'}}</p> <!-- This works -->
        </ion-col>
        <ion-col no-lines>
            <ion-item detail-none no-lines>
                <ion-input [(ngModel)]="param.notify"></ion-input>  <!-- This also works -->
            </ion-item>
        </ion-col>
        <ion-col no-lines>
            <ion-item detail-none no-lines>
                <ion-toggle [(ngModel)]="param.notify"></ion-toggle> <!-- This doesn't -->
            </ion-item>
        </ion-col>
        <ion-col>
            <ion-datetime class="inputLike"
                          displayFormat="DD/MM/YYYY"
                          pickerFormat="DD MMM YYYY"
                          max="2100" min="2015"
                          cancelText="cancel"
                          doneText="ok"
                          [(ngModel)]="param.somedate"> <!-- Nor this -->
            </ion-datetime>
        </ion-col>
    </ion-row>
</ion-item-group>

Родительский компонент:

<my-pure-component [param]="{ notify: true, somedate: '2018-01-01' }">
</my-pure-component>

1 Ответ

0 голосов
/ 27 апреля 2018

Это потому, что вы использовали ChangeDetectionStrategy.OnPush Используйте механизм обнаружения изменений по умолчанию, удалив этот ChangeDetectionStrategy.OnPush из дочернего компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...