【问题标题】:The input value is not sent to the firebase输入值不发送到火力基地
【发布时间】:2018-06-15 11:56:08
【问题描述】:

我有一个角形的材料形式。

add-beer.component.html

        <mat-form-field>
            <input type="number" name="mSladu" matInput placeholder="Hmotnosť sladu" #beerMSLadu="ngModel" [(ngModel)]="beer.mSladu">          
        </mat-form-field>
        <mat-form-field>
            <input type="number" name="hRmutu" matInput placeholder="Hustota rmutu" #beerHRmutu="ngModel" [(ngModel)]="beer.hRmutu">
        </mat-form-field>
        <mat-form-field>
            <input type="number" name="predOHlNalevu" matInput placeholder="Predpokladaný objem hl. nálevu" #beerPredOHlNalevu="ngModel" [(ngModel)]="beer.predOHlNalevu" [value]="beer.hRmutu * beer.mSladu">
        </mat-form-field>
        <mat-form-field>
            <input type="number" name="predOPredku" matInput placeholder="Predpokladaný objem predku" #beerPredOPredku="ngModel" [(ngModel)]="beer.predOHlNalevu * 1.3">
        </mat-form-field>

add-beer.component.ts 函数,在提交表单时触发

onSubmit({value, valid}: { value: Beer, valid: boolean }) {
    if (!valid) {
        // Show error
        this.flashMessage.show('Prosím zadajte povinné údaje', {
            cssClass: 'alert-warn', timeauto: 4000
        });
    } else {
        // Add new client
        this.beerService.newBeer(value);
        // Show message
        this.flashMessage.show('Údaje boli uspešne uložené', {
            cssClass: 'alert-success', timeauto: 4000
        });
        // Redirect to dashboars
        this.router.navigate(['/']);
    }
}

beer.service.ts

newBeer(beer: Beer) {
this.beersCollection.add(beer);

}

问题 1

输入名称为 mSladuhRmutu mSladu 和 hRmut 相乘,结果作为输入值输入,但我发送表单但发送表单时,只有 mSladu 和 hRmutu 值保存在 Firebase 中。

问题 2

当我想要乘以 predOHlNalevu 的值并显示为 predOPredku 的值时,什么都没有发生并且输入保持为空。

感谢您的帮助

编辑: 在 add-beer.component.ts 我定义了一个对象

beer: Beer = {
    mSladu: null,
    hRmutu: null,
    predOHlNalevu: null,
    predOPredku: null
};

Beer[] 从模型 Beer.ts 中获取

【问题讨论】:

  • 出现任何错误?在控制台中显示一些东西?
  • 对于乘法尝试格式:{{(someValue * otherValue)}}
  • 为什么你不建立对象价值:你的方法'onSubmit'里面的啤酒?
  • 控制台和终端中没有显示错误。我尝试了带括号和不带括号的格式。乘以工作,因为结果显示在输入值中,但它不会仅发送到 firebase 值 mSladu 和 hRmutu。你是什​​么意思建立对象价值?谢谢!!
  • onSubmit(){ beer: Beer = new Beer(); beer.mSladu = 'someValue'; beer.predOPredku = 'formValue;...' this.beerService.newBeer(beer); } 类似的东西。

标签: javascript angular typescript firebase angular-material2


【解决方案1】:

啤酒.ts

export class Candidate {
    mSladu: number;
    hRmutu: number;
    predOHlNalevu: number;
    predOPredku: number;

    constructor() {}
}

...

onSubmit() {
    if (!valid) {
beer: Beer = new Beer()
beer.mSladu = 'getFormValue'; 
beer.hRmutu = 'getFormValue';
beer.predOHlNalevu = 'getFormValue';
beer.predOPredku = 'getFormValue';
...
this.beerService.newBeer(beer);
...
 }
}

如果您在表单中使用某种类型的 FormGroup,那么您可以通过以下这一行更改上面的 'getFormValue'

this.yourFormGrouName.get('mSladu').value,

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2022-01-22
    • 1970-01-01
    • 2018-03-27
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多