2016-02-28 5 views
0

У меня есть следующий сценарий:Метеор Угловое 2: ngFor не обновляется, когда модель расширена

я загрузить что-то из базы данных (метеор/Монго), например, с:

this.subscribe('cards', options,() => { 
    this.cards = Cards.find({}, {sort: this.sortObject.get()}); 
}, true); 

В шаблоне я итерацию по этим пунктам с использованием *ngFor="#card of cards"

Когда я продлить объект на какое-то действие, например,

this.cards.forEach((card:Card) => { 
    card.distance = someValue; 
}); 

шаблон не обновляется, то есть, когда я использую {{card.distance}}, оно не отображается.

Невозможно ли расширить объекты/списки, подписанные на использование метеорных и угловых 2?

+0

try' this.cards = this.cards.slice(); 'после' forEach' –

+0

спасибо за подсказку, я попробовал, но получил ошибку 'Property 'slice' не существует в типе 'Cursor .. .' – bersling

+0

Как вы можете итерации с 'forEach', если это не массив? –

ответ

0

Это должно сработать. там

class Company { 
    constructor(private name:string) { } 
} 

@Component({ 
    selector: 'contacts-list', 
    template: ` 
    <ul> 
     <li *ngFor="#company of companies">{{company.name}} - {{company.distance}}</li> 
    </ul> 
    <div (click)="update()">Update</div> 
    <ul> 
     <li *ngFor="#company of rawCompanies">{{company.name}} - {{company.distance}}</li> 
    </ul> 
    <div (click)="updateRaw()">Update</div> 
    ` 
}) 
export class ContactsList { 
    constructor() { 
    this.companies = [ 
     new Company('company 1'), 
     new Company('company 2'), 
     new Company('company 3'), 
    ]; 

    this.rawCompanies = [ 
     { name: 'company 1' }, 
     { name: 'company 2' }, 
     { name: 'company 3' } 
    ]; 
    } 

    update() { 
    this.companies.forEach((company:Company) => { 
     company.name = company.name + 'a'; 
     company.distance = 'test'; 
    }); 
    } 

    updateRaw() { 
    this.rawCompanies.forEach((company) => { 
     company.name = company.name + 'a'; 
     company.distance = 'test'; 
    }); 
    } 
} 

Оба update и rawUpdate обновление вид ... Что-то я пропустил: Вот то, что я пытался?

Посмотрите это plunkr: https://plnkr.co/edit/86i8RHYrFfRnTMMoQ1lH?p=preview.

+0

Да, я думаю, что вы что-то пропустили: проблема метеор + угловая 2. Только Angular 2 отлично работает, я уже пробовал, что сам здесь https://plnkr.co/edit/caP31EQVRYwG3yEh8kTs?p=preview – bersling

Смежные вопросы