Angular2中的解析器和格式化器

前端之家收集整理的这篇文章主要介绍了Angular2中的解析器和格式化器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Angular2中做分析器和格式化的方式是什么?

在Angular1中,可以使用ngModelController进行这样的操作:

//model -> view
ngModelController.$formatters.push(function(modelValue) {
  return modelValue.toUpperCase();
});

//view -> model
ngModelController.$parsers.push(function(viewValue) {
  return viewValue.toLowerCase();
});@H_301_4@ 
 

你能给我一个例子说明如何使用Angular2?

UPD:管道类似于Angular1中的过滤器,但我不是为过滤器寻找,而是针对ngModel的分析器和格式化器.所以“管道”是不正确的答案.

could you provide me an example how to do it with Angular2?

a.)模型 – >视图

1 GT;使用Pipes

TS:

myString: string = "ABCDEFGH";@H_301_4@ 
 

模板:

{{myString | lowercase}}@H_301_4@ 
 

输出

abcdefgh@H_301_4@ 
 

2 – ;直接使用转换

模板:

Below Input field will have lowercase string as value

<input type="text" [value]="myString.toLowerCase()">

I'm also lowercase:  {{myString.toLowerCase()}}@H_301_4@ 
 

输出

Input field with value "abcdefgh"

I'm also lowercase:  abcdefgh@H_301_4@ 
 

3 GT;使用Getter / Setter

TS:

myString: string = "ABCDEFGH";

get stillMyString() {
  return this.myString.toLowerCase();
}
set stillMyString(v) {
  this.myString = v;
}@H_301_4@ 
 

模板:

{{stillMyString}}@H_301_4@ 
 

输出

abcdefgh@H_301_4@ 
 

4>使用Directives

5个使用ControlValueAccessor

或使用上述任何组合

b.)视图 – >模型

1 GT;使用Output/Events

模板:

Below Input field will get lowercase string as value but will store uppercase string

<input type="text" [value]="myString.toLowerCase()" (change)="myString = $event.toUpperCase()">

I'm give uppercase values automatically:  {{myString}}@H_301_4@ 
 

输出

Input field with initial value "abcdefgh"

I'm given uppercase values automatically:  ABCDEFGH@H_301_4@ 
 

2 – ;使用Setter / Getter

TS:

myString: string = "ABCDEFGH";

get stillMyString() {
  return this.myString;
}
set stillMyString(s) {
  this.myString = s.toUpperCase();
}@H_301_4@ 
 

模板:

Below Input field will get lowercase string as value but will store uppercase string

<input type="text" [value]="stillMyString.toLowerCase()" (change)="myString = $event">

Now I'm Uppercase:  {{stillMyString}}@H_301_4@ 
 

输出

Input field with initial value "abcdefgh"

I'm given uppercase values automatically:  ABCDEFGH@H_301_4@ 
 

和/或上述方法的组合以及我现在无法想到的任何其他方法.

包起来

>你可以看到有多种方法来做同样的事情,这取决于你的需要和选择,使用它们.
>验证不是转换的问题,但是您可以通过改进getter / setter并在输入字段中使用FormControl来实现
>我可以在这里向你展示冰山一角,有这么多东西可以模拟<>查看转换,因为这是Angular所做的,Data Binding,一种或两种方式.

希望它帮助:)

原文链接:https://www.f2er.com/angularjs/140690.html

猜你在找的Angularjs相关文章