2017-06-15 87 views
0

我正在运行Angular教程。我卡住了。角度教程错误输入[ngModel] =“selectedHero.name”

我在这里做了一个搜索,发现了一个类似的 error,但它并没有帮助我。

我得到的错误:

Error: Uncaught (in promise): Error: Template parse errors: 
Parser Error: The '?.' operator cannot be used in the assignment at column 20 in [selectedHero?.name=$event] in ng:///AppModule/[email protected]:19 (" 
      <div> 
      <label>name: </label> 
      <input [ERROR ->][(ngModel)]="selectedHero?.name" placeholder="name"/> 
      </div> 
     </div> 
"): ng:///AppModule/[email protected]:19 

我试图与不?。没有区别。我试过这一行:

<input [ngModel]="selectedHero?.name" (ngModelChange)="selectedHero.name = $event" /> 

我回到页面并复制了整个代码,它没有改变任何东西。

我在tutorial的第一部分也得到了同样的错误。

+2

您不能使用''在双向绑定?你的第二个例子是正确的。 '(ngModelChange)=“selectedHero?.name?selectedHero.name = $ event:null”>'更好。第二种方法会发生什么? – echonax

+0

我把它放在:,我什么也没得到。我只有一个编辑框,但没有任何内容。 – user269964

+0

你忘了'[(ngModel)] =“selectedHero?.name”' – echonax

回答

0

改变这一行:

来源:

<input name='name' [ngModel]="selectedHero?.name" (ngModelChange)="selectedHero.name = $event" /> 

要:

<input name='name' [ngModel]="selectedHero?.name" (ngModelChange)="selectedHero?.name ? selectedHero.name = $event.target.value : ''" /> 
+0

我得到此错误:错误:未捕获(承诺):错误:模板解析错误: 可以' t绑定到'ngModel',因为它不是'输入' – user269964

+0

的已知属性,请在app.module.ts中添加formModule –

+0

就是这样。我一直试图添加它,但我没有注意到这些模块。这是一个完全不同的文件。每次我将它添加到我的组件文件中时,我收到一个错误。 – user269964