Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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
Javascript 离子V4 JS对象_Javascript_Object_Ionic Framework_Ionic4 - Fatal编程技术网

Javascript 离子V4 JS对象

Javascript 离子V4 JS对象,javascript,object,ionic-framework,ionic4,Javascript,Object,Ionic Framework,Ionic4,一直在开发一款Ionic PockDB——这两款我都是新手——而且在JS非常基础 我有一个从PockDB返回数据的服务和一个填充视图的ngfor循环。它很好用 从页面输入脚本 ngOnInit() { this.slates = this.api.getSlates(); } 从HTML <ion-content> <ion-list> <ion-item button detail lines="inset" *ngFor="let

一直在开发一款Ionic PockDB——这两款我都是新手——而且在JS非常基础

我有一个从PockDB返回数据的服务和一个填充视图的ngfor循环。它很好用

从页面输入脚本

ngOnInit() {
    this.slates = this.api.getSlates();
    }
从HTML

 <ion-content>
  <ion-list>
    <ion-item button detail lines="inset" *ngFor="let slate of slates" (click)="openDetails(slate)">
  {{ slate.createdon | date:'EEE  - d - LLL hh:mm a yyyy' }} --- {{ slate._id }}
</ion-item>
</ion-list>
</ion-content>
我只得到一个空数组


非常感谢任何帮助-这将有助于我的理智。

要获取数组的长度,请使用

this.slates.length
Object.keysthis.slates从键值对返回键


要获取数组的长度,请使用

this.slates.length
Object.keysthis.slates从键值对返回键


对于第一部分,您可以使用

const numberOfSlates = this.slates.length;
对于第二个,您可以使用find获得第一个结果:

const targetId = "slate:1546427619624:cameraa:x:5";
const foundItem = this.slates.find((slate) => slate["_id"] === targetId);
更新-为什么长度为0? 根据您的评论,您在检查后立即看到长度为零

您是正确的,这是因为该操作是异步的,因此不会立即填充它

在没有看到.getSlates的代码的情况下,这只是一个猜测,但如果它返回一个承诺,那么您可以执行以下操作:

ngOnInit() {
    this.api.getSlates().then((res) => {
       this.slates = res;
       console.log(this.slates);
       console.log(this.slates.length);
    });
}

对于第一部分,您可以使用

const numberOfSlates = this.slates.length;
对于第二个,您可以使用find获得第一个结果:

const targetId = "slate:1546427619624:cameraa:x:5";
const foundItem = this.slates.find((slate) => slate["_id"] === targetId);
更新-为什么长度为0? 根据您的评论,您在检查后立即看到长度为零

您是正确的,这是因为该操作是异步的,因此不会立即填充它

在没有看到.getSlates的代码的情况下,这只是一个猜测,但如果它返回一个承诺,那么您可以执行以下操作:

ngOnInit() {
    this.api.getSlates().then((res) => {
       this.slates = res;
       console.log(this.slates);
       console.log(this.slates.length);
    });
}

第一部分重复:遍历JSON似乎是另一个问题,可能也有重复。这不是一个离子问题。第一部分重复:遍历JSON似乎是另一个问题,可能也有重复。这不是一个离子问题。谢谢rtpHarry const numberOfSlates=This.slates.length;用作“console.logNumber of slate-+numberofslate;”给了我slates的数量-0是因为在开始时对PockDB的调用返回了一个承诺,在将其返回到this.slates=this.api.getSlates;之前,我将该承诺推送到一个数组上?这一切都是在ngOnInit中运行的吗?谢谢rtpHarry const numberOfSlates=this.slates.length;用作“console.logNumber of slate-+numberofslate;”给了我slates的数量-0是因为在开始时对PockDB的调用返回了一个承诺,在将其返回到this.slates=this.api.getSlates;之前,我将该承诺推送到一个数组上?这一切都在ngOnInit内部运行?