Angular value与ngValue区别详解


Posted in Javascript onNovember 27, 2019

前言

在最近的项目中,需要用到 select 组件,之前 Angular 前台都是用现有的封装好的框架,一般都是从 Ctrl+cCtrl+v 的操作然后改一下就可以用,最近使用的 Bootstrap 原生样式,所以一切都得自己写,但是这样也有好处的,不会受框架的局限性。

Angular value与ngValue区别详解

组件

ts部分代码:

input 输入, output 输出

@Input()
 set college(value: College) {
  this.innerCollege = value;
 }

 get college(): College {
  return this.innerCollege;
 }

 private innerCollege: College;

 @Output()
 collegeSelect: EventEmitter<College> = new EventEmitter();
 
 .........
 
  public change(college: College): void {
  this.collegeSelect.emit(college);
 }

Html:

<select [compareWith]="comparedWithId" class="form-control" [(ngModel)]="college" (change)="change(college)">
 <option value="-1" >请选择学院...</option>
 <option *ngFor="let _college of colleges" [value]="_college">{{_college.name}}</option>
</select>

问题

在发送请求时,向后台发送 Post 请求时发生错误,并提示状态码为 400

Angular value与ngValue区别详解

出现 400

的状态码的错误一般有两种:

1、语义有误,当前请求无法被 服务器 理解。除非进行修改,否则客户端不应该重复提交这个请求。

2、请求参数有误。

在看一下向后台发送数据为 [Object Object]

Angular value与ngValue区别详解

很明显我们这就是第二种请求参数错误,应该是传过去一个 College 对象,而我们传过去了一个 [Object Object]

原因

为什么会出现这个原因呢,在大家看来 [Object Object] 是不是也是一个对象?

在控制台打印,发现传过去的 College 就是 [Object Object]

Angular value与ngValue区别详解

为什么会这样显示呢,感觉怪怪的,不是应该显示 JSON 格式的对象么?

google 一下问题迎刃而解,在 stackoverflow 有详细的解释

Angular value与ngValue区别详解

[value]="..." 仅支持字符串值
[ngValue]="..." 支持任何类型

所以 value 仅支持串字符串,不支持传对象,如果使用 value 传对象,然而不会得到正确的解析,就得到了我们看到的 [Object Object]

修改为ngValue

<select [compareWith]="comparedWithId" class="form-control" [(ngModel)]="college" (change)="change(college)">
 <option value="-1" >请选择学院...</option>
 <option *ngFor="let _college of colleges" [ngValue]="_college">{{_college.name}}</option>
</select>

控制台打印:

Angular value与ngValue区别详解

现在看来是我们想要的数据!!!

在次发送请求,状态码 200 成功

Angular value与ngValue区别详解

Angular value与ngValue区别详解

数据也是正确的!!没有问题!!

总结

感觉之前还是太依赖于框架,没有深究 ValuengValue 有什么不同,框架里用 Value 就直接复制过去,框架都是封装好的,导致现在自己用到了,不知道怎么写的了。

用框架也有好处,既方便又省时间,什么都是现成的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
jQuery中click事件的定义和用法
Dec 20 Javascript
JS 面向对象之继承---多种组合继承详解
Jul 10 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
javascript中Date对象的使用总结
Nov 21 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
京东优选小程序的实现代码示例
Feb 25 Javascript
js加减乘除精确运算方法实例代码
Jan 17 Javascript
原生js实现二级联动菜单
Nov 27 #Javascript
微信小程序wxml列表渲染原理解析
Nov 27 #Javascript
原生js实现下拉选项卡
Nov 27 #Javascript
浅析Vue下的components模板使用及应用
Nov 27 #Javascript
d3.js 地铁轨道交通项目实战
Nov 27 #Javascript
微信小程序表单验证WxValidate的使用
Nov 27 #Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 #Javascript
You might like
PHP 已经成熟
2006/12/04 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP类的封装与继承详解
2015/09/29 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
php实现简单加入购物车功能
2017/03/07 PHP
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
python文件和目录操作函数小结
2014/07/11 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
python deque模块简单使用代码实例
2020/03/12 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
住宅质量保证书
2014/04/29 职场文书
租房协议书样本
2014/08/20 职场文书
检讨书1000字
2014/10/11 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
社区工作者个人总结
2015/02/28 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书