我正在将项目从测试版转移到RC6。我试图将控制器中的属性绑定到内容可编辑指令,如下所示:
<h4 contenteditable="true" [(contenteditableModel)] = "person.name" placeholder="First Last" (contenteditableModelChange)="updated($event)"></h4>
然而person
来自rest api,所以它是异步的。这导致Angular抛出错误
null is not an object (evaluating 'self.context.person.name')
这是有道理的(尽管这在早期的代码中有用。)我尝试使用?.
运算符,但后来我收到此错误:
The '?.' operator cannot be used in the assignment
我正在初始化person
这样的对象:
ngOnInit(){
this.route.params.forEach(params => {
this.nodeID = params['id'];
this.personService.getPerson(this.nodeID)
.subscribe(person => {this.person = person});
});
正确的方法是什么?
答案 0 :(得分:1)
也许这是一种方法:
<h4 *ngIf="person" contenteditable="true" [(contenteditableModel)] = "person.name" placeholder="First Last" (contenteditableModelChange)="updated($event)">
</h4>
如果元素未定义,请不要创建该元素。
答案 1 :(得分:0)
由于您使用 db.matches.createIndex({ "isLive" : 1, "isComplete" : 1, "endedAt" : 1 }, { "background" : true } )
来处理onchange事件,因此可能是&#34; banana-box&#34;格式()
是不必要的,并导致问题。尝试使用方括号:
[()]