angular - Angular2 iterate over array of objects -
i have array following:
causes: any= [ { 'specification': { 'missing':false, 'unclear':false, 'wrong':false, 'changed':false, 'better way':false, }, 'design': { 'missing':false, 'unclear':false, 'wrong':false, 'changed':false, 'better way':false, }, 'code': { 'missing':false, 'unclear':false, 'wrong':false, 'changed':false, 'better way':false, }, 'documentation': { 'missing':false, 'unclear':false, 'wrong':false, 'changed':false, 'better way':false, }, }] how can iterate on in template? tried like:
<div class="mdl-grid"> <div *ngfor=" let chunk of causes | chunks: 2; let j = index; " class="mdl-cell mdl-cell--4-col"> <label *ngfor=" let cause of chunk| values " #checkbox class="mdl-checkbox mdl-js-checkbox"> <input type="checkbox" name="causes" class="mdl-checkbox__input"> <span class="mdl-checkbox__label">{{cause}}</span> </label> </div> </div> but still gave me [object object]. trying populate each cause , against 5 checkboxes.
in code presented have 1 object inside array.
i assume array should this:
causes: = [ { name: 'specification', values: { 'missing': false, 'unclear': false, 'wrong': false, 'changed': false, 'better way': false, }, }, { name: 'design', values: { 'missing': false, 'unclear': false, 'wrong': false, 'changed': false, 'better way': false, }, }, { name: 'code', values: { 'missing': false, 'unclear': false, 'wrong': false, 'changed': false, 'better way': false, }, }, { name: 'documentation', values: { 'missing': false, 'unclear': false, 'wrong': false, 'changed': false, 'better way': false, }, } ] your html should
<div class="mdl-grid"> <div *ngfor=" let chunk of causes" class="mdl-cell mdl-cell--4-col"> <div>checkboxes {{chunk.name}}</div> <div *ngfor=" let cause of chunk.values | keys"> <label #checkbox class="mdl-checkbox mdl-js-checkbox"> <input type="checkbox" [name]=" chunk.name + '_' + cause" class="mdl-checkbox__input"> <span class="mdl-checkbox__label">{{cause}}</span> </label> </div> </div> </div> where keys pipe custom pipe returns keys of object, array of strings. code pipe:
pipe
import { pipe, pipetransform } '@angular/core'; @pipe({ name: 'keys', pure: false }) export class keyspipe implements pipetransform { transform(value, args: string[]): { return object.keys(value); } }
Comments
Post a Comment