首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 5 @input()对象属性绑定错误

Angular 5 @input()对象属性绑定错误
EN

Stack Overflow用户
提问于 2018-06-09 03:34:14
回答 1查看 2.8K关注 0票数 0

我不确定我得到的错误是否:

代码语言:javascript
复制
***ERROR**: Can't bind to 'obj.Name' since it isn't a known property of 'comp'.*

是Angular不允许这种行为的结果。其目的只是绑定到@input对象属性。代码:

代码语言:javascript
复制
// comp.component.ts
...
@Input() obj: ObjType = {
Name: ''
}

// comp2.html
...
// this HTML is passing the value from comp2.html to comp component
<app-comp [obj.Name]="MyNameIs"></app-comp>

我希望"MyNameIs“值被传递回obj.Name属性,但我得到了上面的错误。这是不是我做得不对,或者只是Angular (v5)做不到?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 03:46:48

@Input是为父零部件到子零部件特性绑定保留的。

例如:parent.component.ts应该包含一个属性:

public myNameIs = { name: 'Marie Curie'};

父模板内的parent.component.html包含子组件并绑定到属性:

<child-comp [obj]="MyNameIs"></child-comp>

子组件内的child.component.ts使用@Input装饰器绑定到属性。

@Input() obj: ObjType = {}

child.component.html,然后您可以在您的子组件或模板中使用该属性。

<h3> {{obj?.name}}</h3>

这是一个StackBlitz demo for your use case

在您的情况下,您不能绑定到obj.Name**,,因为** Input() obj装饰器绑定到对象,而不是绑定到obj.Name**.**的特定属性。要修复您的错误,您只需在<child-comp [obj]="MyNameIs"></child-comp>中传递值(请参阅我创建的工作StackBlitz )。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档