角2 ngModel不绑定对象属性定义类定义

角2 ngModel不绑定对象属性定义类定义

问题描述:

我是新的角2,我试过[(ngModel)]如下所示。角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 gets bind to view on page load

第二个是..

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"; 
} 

这一个产生以下输出..

If i define model = {} and model.name = "some value it does not appearing in view on page load"

请您解释一下两个代码示例和为什么它不是在第二个样本工作之间的差异..

在此先感谢。

因为你不能在那里做任务。您可以分配进入构造函数或任何其他生命周期方法:

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 = {}; 

} 

此外,如果你看看你transpiled JS文件,你会看到类似这样的:

function AppComponent() { 
     this.model = {}; 
     this.name = "some value"; 
} 
+0

为什么我不能在那里做任务?如果我不能在那里做任务,那么我们如何才能将模型分配给模型?请澄清我..并感谢您的回答 – shivaraj

+2

https://plnkr.co/edit/slL7l8yvOe4aO5dm3Q3X?p=preview您不能在课堂顶级的任意代码。只有属性和方法声明是允许的。代码必须进入构造函数或方法。 –

+0

@shivaraj您没有将{}分配给模型,您在那里创建了一个对象。然后你试图改变你创建的那个对象的属性。 – echonax