数据绑定Angular 4

时间:2017-11-14 12:39:16

标签: angular

我有一个带变量的组件说'id'在这个组件中,我调用了一个服务,该服务将该变量(id)作为参数, 在我的模板中,我将一个单选按钮的值赋给变量(id).. 问题是..我在" ngOnInit()"中调用我的服务,所以它没有取得单选按钮的值,但是取了&#的初始值34; ID" .. 这是我的代码:

在我的组件中:

 import { Component, OnInit } from '@angular/core';
 import { BartersService } from '../../core/services/barters.service'; 

 export class BarterViewComponent implements OnInit {
 id:string="";
 allCategories ;
 constructor( private barServ: BartersService) { }
  ngOnInit() {
   this.barServ.findByPage(this.id)
   .subscribe(respone => {
   this.allCategories = respone.data;
    });

    }
 onSelectionChange(val) {
  this.id = val;
 }

}

在我的模板中:

<div *ngFor="let cat of allCategories ; let i=index;">                              
   <input  style="margin-bottom: 10px;" type="radio" #R 
      (change)="onSelectionChange(R.value )" name="rad"  value="cat['id']"> 
      {{cat['name']}}
</div>

目标:

目标是根据单选按钮的选择更新视图。

2 个答案:

答案 0 :(得分:2)

更改此

value="cat['id']"

[value]="cat['id']"value="{{cat['id']}}"

答案 1 :(得分:0)

你可以试试这个:

export class BarterViewComponent implements OnInit {
 id:string="";
 allCategories ;

 constructor( private barServ: BartersService) { }
 ngOnInit() {
    refreshCategories()
 }

 onSelectionChange(val) {
  this.id = val;
  refreshCategories()
 }

 refreshCategories() {
   this.barServ.findByPage(this.id).subscribe(respone => {
       this.allCategories = respone.data;
   });
 }
}