2017-09-15 39 views
2

我有一个字段是一个JSON对象的类,我需要显示此JSON到一个文本。所以我创建了一套set/get方法来处理这个问题。使用GET /上NgModule集绑定angular4

我的类别:

class Element { 

property: string; 
value: string; 

    constructor(property: string,value: string){ 

    this.property = property; 
    this.value = value; 
    } 
} 

class Model { 

    elements: Element[]; 

    constructor(elements?: Element) { 
     this.elements = elements; 
    } 

    get elementsValue() { 
     return JSON.stringify(this.elements, null, 2); 
    } 
    set elementsValue(value: string) { 
     this.elements = JSON.parse(value); 
    } 

} 

我的组分:

@Component({ 
     selector: 'my-app', 
     providers: [], 
     template: ` 
     <div *ngFor="let model of models"> 
      <textarea [(ngModel)]='model.elementsValue' rows="30" cols="120"></textarea> 
     </div> `, 
     directives: [] 
    }) 
    export class App { 

     models = [ 
      new Model([new Element("test","value"),new Element("test","value")]), 
      new Model() 
     ] 
    } 

elementsValue值未绑定到textarea的。 textarea的是空

我使用this Plank作为模板。

+0

您是否收到错误?更具体的发生了什么?是否有可能改变Plunker来展示*你的问题。这会帮助我们帮助你。 – DeborahK

+0

Plunker不是我的。我将它用作模板 – theShadow89

+0

是的,但是您可以单击左上角的按钮来分叉,然后添加代码。如果我们可以在正在运行的plunker环境中看到您的代码,那将会更容易帮助您。 – DeborahK

回答

0
<div *ngFor="object of objects"> 

尝试

<div *ngFor="let object of objects"> 
+0

我已经使用'let' – theShadow89

0

constructorModel类预期只是一个单一的Element作为参数。尝试将该参数更改为一组元素

constructor(elements?: Element[]) { 
    this.elements = elements; 
}