5

我是 angular 2 的新手,我尝试了 [(ngModel)],如下所示。

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `<input [(ngModel)]="model.name" name="name"> <h1>{{model.name}}</h1>`
})
export class AppComponent  { 
constructor() {
}
model = {name: "some value"};
}

上面的代码在浏览器中初始加载网页时产生如下所示的输出。

model.name 在页面加载时绑定到视图

第二个是..

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `<input [(ngModel)]="model.name" name="name"> <h1>{{model.name}}</h1>`
})
export class AppComponent  { 
constructor() {
}
model = {};
model.name = "some value";
}

这个产生以下输出..

如果我定义 model = {} 和 model.name =

请解释两个代码示例之间的区别以及为什么它在第二个示例中不起作用..

提前致谢。

4

1 回答 1

3

因为你不能在那里做作业。您可以将赋值移动到构造函数或任何其他生命周期方法中:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `<input [(ngModel)]="model.name" name="name"> <h1>{{model.name}}</h1>`
})
export class AppComponent  { 
constructor() {
   this.model.name = "some value";
}
model = {};

}

此外,如果您查看转译的 js 文件,您会看到如下内容:

function AppComponent() {
      this.model = {};
      this.name = "some value";
}
于 2016-11-25T11:09:56.647 回答