如何处理绑定到同一ng模型的不同输入类型?

时间:2016-04-28 19:57:51

标签: javascript angularjs modernizr

在页面中,我有一个日期范围选择部分。我们用户群的很大一部分是IE 10/11,它不支持输入类型=“日期”。我正在使用Modernizr根据支持显示/隐藏日期输入,如果没有,则提供type =“text”的输入,两者都绑定到同一个ng模型。键入文本会使控制台出错,因为文本和日期不兼容。有没有办法修复此控制台垃圾邮件?使用第三方库不是一种选择。

<div class="col-md-3" data-ng-show="searchBillCreatedDate == 'custom'">
    <label>From</label>
    <input data-ng-model="searchFromDate" type="date" class="form-control" data-ng-show="browser.supportsDateInput">
    <input data-ng-model="searchFromDate" type="text" class="form-control" data-ng-show="!browser.supportsDateInput" placeholder="yyyy-mm-dd">
</div>

1 个答案:

答案 0 :(得分:1)

将ng-show更改为ng-if,如下所示:

>>> '1' != {1}
True

您收到错误,因为它绑定到第一个输入的模型,这是一个日期输入。 ng-show只使用CSS来隐藏元素,但它仍然存在于DOM中。但是,ng-if会从DOM中完全删除它,只留下一个ng-model =“searchFromDate”