【问题标题】:An issue with "[checked]= true" in angular2angular2 中“[checked]=true”的问题
【发布时间】:2017-04-14 17:09:40
【问题描述】:

我在angular2 应用程序中管理餐厅的订单。所以我有这个代码:

 <md-radio-group>
   <span *ngFor="let extIng of item.extra_ingredients;">
      <md-radio-button *ngIf="extIng.default === false" [value]="extIng" (click)="toggleNotMultipExtraConfig(extIng)">
        <span>{{extIng.name}}</span>
      </md-radio-button>
      <md-radio-button *ngIf="extIng.default === true"  [value]="extIng" (click)="toggleNotMultipExtraConfig(extIng)" [checked]=true> 
        <span>{{extIng.name}}</span>
      </md-radio-button>
   </span>
 </md-radio-group>

还有这个 TS 部分:

@Input() item: Item;
public oneChoiceConfig:          any[]= [];

//....

toggleNotMultipExtraConfig(extra: any): void {

  this.oneChoiceConfig.push(extra);

}

它们都生成这个: 我的问题是,当添加 [checked]=true 参数时,我会得到一些默认检查项目的浇头,但是一旦提交订单,我没有推送任何东西 oneChoiceConfig ,所以我想要一个技巧来帮助我 推送 默认检查额外到oneChoiceConfig(在触发方法toggleNotMultipExtraConfig()后完成)并提前感谢!

【问题讨论】:

    标签: html angular typescript angular-material2


    【解决方案1】:

    您可以在您的 TS 文件中执行类似的解决方法:

    ngAfterContentInit() {
    
      this.item.extra_ingredients.forEach((value, key) {
        if (value.default === true) {
          this.oneChoiceConfig.push(v);
        }
      })
    }
    

    别忘了import和implementAfterContentInit。

    【讨论】:

      【解决方案2】:

      一种可能的解决方案是像这样在 ngOnInit 钩子中添加这个顶部

      ngOnInit() {
          this.item.extra_ingredients
            .filter(extra => extra.default)
            .map(extra => this.oneChoiceConfig.push(extra);
      
      }
      

      我可以建议的另一件事是简化 html 模板。而不是:

        <md-radio-button *ngIf="extIng.default === false" [value]="extIng" (click)="toggleNotMultipExtraConfig(extIng)">
          <span>{{extIng.name}}</span>
        </md-radio-button>
        <md-radio-button *ngIf="extIng.default === true"  [value]="extIng" (click)="toggleNotMultipExtraConfig(extIng)" [checked]=true> 
          <span>{{extIng.name}}</span>
        </md-radio-button>
      

      你可以用这个:

       <md-radio-button [value]="extIng" (click)="toggleNotMultipExtraConfig(extIng)" [checked]="extIng.default">
          <span>{{extIng.name}}</span>
        </md-radio-button>
      

      【讨论】:

      • 非常感谢,我认为这与检查过的答案相似,但稍晚一点..我已经投票了!
      猜你喜欢
      • 2015-02-25
      • 2018-11-09
      • 2017-09-20
      • 1970-01-01
      • 2019-01-15
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多