首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当输入类型为日期时,Angular过滤器在IE和Firefox中不会触发

的原因是因为IE和Firefox浏览器对于日期类型的输入框的处理方式与其他浏览器不同。

在IE和Firefox中,当输入类型为日期时,浏览器会将输入框的值作为字符串进行处理,而不是将其解析为日期对象。这导致在使用Angular过滤器时无法正确地将字符串转换为日期对象进行过滤。

为了解决这个问题,可以使用Angular的自定义指令来处理日期输入框的值。通过自定义指令,可以在输入框的值发生变化时,手动将字符串转换为日期对象,并触发过滤器的执行。

以下是一个示例的自定义指令代码:

代码语言:javascript
复制
app.directive('dateInput', function() {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ngModelCtrl) {
      ngModelCtrl.$parsers.push(function(viewValue) {
        // 将字符串转换为日期对象
        var date = new Date(viewValue);
        return date;
      });
    }
  };
});

在HTML中,使用自定义指令来替代原生的日期输入框:

代码语言:html
复制
<input type="text" ng-model="date" date-input>

通过以上的自定义指令,可以确保在IE和Firefox中,输入类型为日期的输入框的值能够正确地被Angular过滤器处理。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)

产品介绍链接地址:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular.js学习笔记(三)

1、uppercase,lowercase 大小写转换 {{ "lower cap string" | uppercase }} // 结果:LOWER CAP STRING {{ "TANK is GOOD" | lowercase }} // 结果:tank is good 2、date 格式化 {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25 3、number 格式化(保留小数) {{149016.1945000 | number:2}}//保留两位 {{149016.1945000 | number}}//默认为保留3位 4、currency货币格式化 {{ 250 | currency }} // 结果:$250.00 {{ 250 | currency:"RMB ¥ " }} // 结果:RMB ¥ 250.00 5、filter查找 输入过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称。 filter 过滤器从数组中选择一个子集 // 查找name为iphone的行 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | filter:{'name':'iphone'} }} 同时filter可以自定义比较函数。 6、limitTo 截取 {{"1234567890" | limitTo :6}} // 从前面开始截取6位 {{"1234567890" | limitTo :6,6}} // 从第6位开始截取6位 {{"1234567890" | limitTo:-4}} // 从后面开始截取4位 7、orderBy 排序 // 根据id降序排 {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id':true }}

02
领券