Reference.push失败:第一个参数包含属性中的undefined

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Reference.push失败:第一个参数包含属性中的undefined相关的知识,希望对你有一定的参考价值。

我试图将两个数据(itemName和itemAmout)发送到firebase数据库但是它给了我以下错误:

错误:Reference.push失败:第一个参数在属性'shoppingItem.itemName'中包含undefined

我不知道问题出在哪里。

我试图使用这个解决方案Error: Reference.push failed,但它只是在没有将数据发送到我的firebase数据库时带走了错误消息。这是我的代码:

addItem.ts:

import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams } from 'ionic-angular';
    import {ShoppingItems} from '../../models/items.interface';
    import { AngularFireDatabase } from   'angularfire2/database';

    import { AngularFireList } from 'angularfire2/database'; 

    @IonicPage(

      {
        segment :'shoppingList/Add-Item'
      }
    )
    @Component({
      selector: 'page-add-item',
      templateUrl: 'add-item.html',
    })
    export class AddItemPage {

    shoppingItem ={} as ShoppingItems ;
    shoppingListRef$ :AngularFireList<ShoppingItems>;


      constructor(public navCtrl: NavController, public navParams: NavParams,
         private adb:AngularFireDatabase) {

          this.shoppingListRef$=adb.list('/shoppingItem');

      }

      addItem(shoppingItem:ShoppingItems){
        this.shoppingListRef$.push({

          itemName: this.shoppingItem.itemName ,
          itemAmount : Number(this.shoppingItem.itemAmount)  

        });

        //this.shoppingItem={} as ShoppingItems;
        this.navCtrl.pop();

      }

    }

* items.interface.ts:*

export interface ShoppingItems {
    itemName : string ;
    itemAmount : number;

}

addItem.html:

<ion-header>

  <ion-navbar color="dark">
    <ion-title>Add Item</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>
<ion-item>
  <ion-label floating>
    item  name
  </ion-label>
  <ion-input type="text" ([ngModel])="shoppingItem.itemName"></ion-input>
</ion-item>

<ion-item>
    <ion-label floating>
      item  amount
    </ion-label>
    <ion-input type="number" ([ngModel])="shoppingItem.itemAmount"></ion-input>
  </ion-item>

<button ion-button block (click)="addItem(shoppingItem)">Add item</button>
</ion-content>
答案

我永远带我去发现你的问题。它来自ngmodel。不是 ([])

<ion-item>
  <ion-label floating>
    item  name
  </ion-label>
  <ion-input type="text" [(ngModel)]="shoppingItem.itemName"></ion-input>
</ion-item>

<ion-item>
    <ion-label floating>
      item  amount
    </ion-label>
    <ion-input type="number" [(ngModel)]="shoppingItem.itemAmount"></ion-input>
  </ion-item>

以上是关于Reference.push失败:第一个参数包含属性中的undefined的主要内容,如果未能解决你的问题,请参考以下文章

Firebase.push 失败:第一个参数包含无效密钥 ($$hashKey)

如何修复此错误:偏移参数包含 NaN 值。 'dart:ui/painting.dart':断言失败:第 43 行:'<优化输出>'

2016项目反思

linux列出多个子目录权限属组

Vue3 父子组件通信

Yii的数组助手类