当前位置: 首页 > 面试题库 >

在输入元素中使用angularjs过滤器

沃皓轩
2023-03-14
问题内容

我希望我不会错过doco中任何明显的内容,如果可以的话,我相信有人会帮助您。

我正在使用asp.net
webapi返回带有日期字段的DTO。这些使用JSON.Net(格式为‘2013-03-11T12:37:38.693’)进行序列化。

我想使用过滤器,但是在INPUT元素中,这是否可行,或者我应该创建一个新的过滤器或指令来完成此操作?

// this just displays the text value
<input ui-datetime type="text" data-ng-model="entity.date" /> 
// this doesn't work at all
<input ui-datetime type="text" data-ng-model="{{entity.date|date:'dd/MM/yyyy HH:mm:ss a'}}" /> 
// this works fine
{{entity.date|date:'dd/MM/yyyy HH:mm:ss a'}}

我缺少任何捷径吗?


问题答案:

简而言之:如果希望数据在视图和模型中具有不同的表示形式,则需要一个 指令 ,可以将其视为 双向过滤器

您的指令看起来像

angular.module('myApp').directive('myDirective', function() {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ngModelController) {
      ngModelController.$parsers.push(function(data) {
        //convert data from view format to model format
        return data; //converted
      });

      ngModelController.$formatters.push(function(data) {
        //convert data from model format to view format
        return data; //converted
      });
    }
  }
});

HTML:

<input my-directive type="text" data-ng-model="entity.date" />

这是一个有效的jsFiddle示例。



 类似资料:
  • 问题内容: 我想在过滤器中向后端请求并返回请求的结果。问题是服务$ http返回一个承诺,这就是问题。 对于存在的问题,我用$超时和角度在我的小提琴的承诺: 我的小提琴 在我的过滤器中,我使用带有承诺的$ timeout,但是最终目标是使用请求http: }); 然后在我看来,我使用了我的过滤器,该过滤器假定以2秒的延迟显示“ ca marche”,但这不起作用: 您会看到过滤器不返回任何内容,并

  • 过滤器可用在任何api或者ng.$rootScoe.Scope的执行过程中,不过一般用来格式化绑定在模板中的表达式。 \{\{ expression | filter \}\} 过滤器一般在处理过程中将数据转变成新的格式。它能使用链式风格,还能接受附加参数。 你可以像下面这样使用链式风格: \{\{ expression | filter1 | filter2 \}\} 你也可以使用“:”来传

  • 本文向大家介绍AngularJS 单元测试过滤器,包括了AngularJS 单元测试过滤器的使用技巧和注意事项,需要的朋友参考一下 示例 过滤器代码: 考试: 跑! 备注:在inject测试的调用中,您的过滤器需要使用其名称+ Filter来指定。原因是,每当您为模块注册过滤器时,Angular都会Filter在其名称后面附加一个注册它。

  • 本文向大家介绍AngularJS中的过滤器使用详解,包括了AngularJS中的过滤器使用详解的使用技巧和注意事项,需要的朋友参考一下 过滤器是用来更改修改数据,并且可以在表达式或使用管道符指令将其归入。以下是常用的过滤器的列表。  小写过滤器 添加小写的过滤器,使用管道符的表达式。在这里添加小写过滤器,以小写字母打印学生姓名。 货币滤波器 加币过滤器使用管道符返回数的表达式。在这里,我们添加了过

  • 1.3.3. 过滤输入 过滤是Web应用安全的基础。它是你验证数据合法性的过程。通过在输入时确认对所有的数据进行过滤,你可以避免被污染(未过滤)数据在你的程序中被误信及误用。大多数流行的PHP应用的漏洞最终都是因为没有对输入进行恰当过滤造成的。 我所指的过滤输入是指三个不同的步骤: l识别输入 l过滤输入 l区分已过滤及被污染数据 把识别输入做为第一步是因为如果你不知道它是什么,你也就不能正确地过

  • 我们经常会要求用户在文本框中输入特定的数据,或者输入特定格式的数据。例如,必须包含某些字符,或者必须匹配某种模式。由于文本框在默认情况下没有提供多少验证数据的手段,因此必须使用JavaScript 来完成此类过滤输入的操作。而综合运用事件和DOM 手段,就可以将普通的文本框转换成能够理解用户输入数据的功能型控件。 1. 屏蔽字符 有时候,我们需要用户输入的文本中包含或不包含某些字符。例如,电话号码