You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 2组件向自定义指令传递Map对象仅收到[object Map]字符串如何解决

问题诱因

  • 你使用的{{ }}是Angular的字符串插值绑定语法,该绑定会自动对所有传入值调用toString()方法序列化为字符串,仅适合传递基础类型参数
  • Map属于引用类型,默认的toString()返回值为固定的[object Map],因此指令最终接收到的是序列化后的字符串,而非原始的Map对象

修复方案

将模板中的插值绑定替换为Angular的属性输入绑定,该绑定方式可以直接传递引用类型的原始引用,不会自动做序列化转换:

错误写法

<input type='text' differences={{differences}}>

正确写法

<input type='text' [differences]="differences">

修改完成后,指令内的@Input就能接收到完整的Map实例,类型也会匹配声明的Map<string,ObjectDifference>类型。


内容的提问来源于stack exchange,提问作者Yuri Gridin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:51:02