Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 流星角2:NGF';当模型被扩展时不更新_Meteor_Angular - Fatal编程技术网

Meteor 流星角2:NGF';当模型被扩展时不更新

Meteor 流星角2:NGF';当模型被扩展时不更新,meteor,angular,Meteor,Angular,我有以下场景: 我从数据库(meteor/mongo)加载一些东西,例如: this.subscribe('cards', options, () => { this.cards = Cards.find({}, {sort: this.sortObject.get()}); }, true); 在模板中,我使用*ngFor=“#卡片中的卡片” 当我在某个动作上展开对象时,例如 this.cards.forEach((card:Card) => { card.dista

我有以下场景:

我从数据库(meteor/mongo)加载一些东西,例如:

this.subscribe('cards', options, () => {
    this.cards = Cards.find({}, {sort: this.sortObject.get()});
}, true);
在模板中,我使用
*ngFor=“#卡片中的卡片”

当我在某个动作上展开对象时,例如

this.cards.forEach((card:Card) => {
  card.distance = someValue;
});
模板不会得到更新,即当我使用
{{card.distance}}
时,它不会显示


无法使用meteor和angular 2扩展订阅的对象/列表吗?

这应该可以。以下是我尝试过的:

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';
    });
  }
}
class公司{
构造函数(私有名称:string){}
}
@组成部分({
选择器:“联系人列表”,
模板:`
    {{company.name}}-{{company.distance}
更新
    {{company.name}}-{{company.distance}
更新 ` }) 导出类联系人列表{ 构造函数(){ 这意味着公司=[ 新公司(“公司1”), 新公司(“公司2”), 新公司(“公司3”), ]; 这是一个公司=[ {name:'公司1'}, {名称:'公司2'}, {名称:'公司3'} ]; } 更新(){ this.companys.forEach((公司:公司)=>{ company.name=company.name+'a'; company.distance=‘test’; }); } updateRaw(){ 此.rawCompanies.forEach((公司)=>{ company.name=company.name+'a'; company.distance=‘test’; }); } }
update
rawUpdate
都更新视图。。。我错过了什么吗


请参阅以下命令:.

尝试
this.cards=this.cards.slice()
forEach
之后,感谢您的提示,我尝试了,但得到了错误
属性“slice”在类型“Cursor…”上不存在。
如果它不是数组,您如何使用
forEach
进行迭代?它是流星/mongo光标,显然有forEach但没有slice它有
toArray()
。是的,我想你遗漏了一些东西:问题是流星+角度2。只有Angular 2行得通,我自己也试过了