相关疑难解决方法(0)

Angular2,*ngIf和本地模板变量

有人可以解释以下行为背后的原因:

假设我们有一个具有_model对象的Angular2组件.然后在模板中我们有这个

<form>
    <input type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2"  #myInput >
    <br>Class: {{myInput?.className}}
</form>
Run Code Online (Sandbox Code Playgroud)

_model从一开始就可以在ngOnInit中从头开始创建.输入字段使用_model.firstName变量和行正确填充

_model

在模板中正确呈现以下内容

_model.

到现在为止还挺好.令我困惑的是,我添加*ngIf的那一刻,我将输入字段更改为

<input *ngIf="_model" type="text" class="form-control" required [(ngModel)]="_model.firstName" ngControl="test2"  #myInput >
Run Code Online (Sandbox Code Playgroud)

双花括号插值停止工作,因为ngOnInit()即使代码中没有其他内容发生变化,显然局部变量也不会被初始化,仍然会创建_model对象_model.firstName并且输入字段仍然正常工作.<br>Class: {{myInput?.className}}呈现的唯一的东西是

Class: form-control ng-untouched ng-pristine ng-invalid

有人可以解释发生了什么和/或指向我正确的文件吗?

提前致谢!

编辑:

这是一个能够显示问题的傻瓜

http://plnkr.co/edit/itNRpy5lc9PB837C7HdP?p=preview

创建错误报告https://github.com/angular/angular/issues/8087

interpolation angular

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

angular ×1

interpolation ×1