如何将新项目推送到空数组?

时间:2018-08-01 08:01:15

标签: angular typescript angular6

我有*ngFor使用的一组梭哈, 学生名单发送双父组件, 当studentList为空时,我想在组件上看到一行为空, 这是数组:

 @Input() studentList: Student[] = []; //child property

在父cmp中:

 get studentList(): Student[] {      //parent property
      const arr: Array<Student> = new Array<Student>();
if (getStudents()){
      arr=getStudents();
}
else{
      arr.push(new Student());
      return (arr);
    }
  }

getStudents()是一个返回null的Mock方法, Student是带有idNumberstudentName道具的简单类 但是如果arr为空,则*ngFor不显示任何行。

4 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用

import os import sys import cv2 import datetime import numpy as np os.system("raspistill -w 1920 -h 1280 -o faces_to_detect.jpg") imagePath = "faces_to_detect.jpg" cascPath = "haarcascade_frontalface_default.xml" faceCascade = cv2.CascadeClassifier(cascPath) image = cv2.imread(imagePath) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale( gray, scaleFactor=1.21, minNeighbors=3, minSize=(18, 18), flags = cv2.cv.CV_HAAR_SCALE_IMAGE ) print("Faces on pic: {}.").format(len(faces)) faces_img = cv2.imread("/home/pi/Room/faces_to_detect.jpg") mask = cv2.imread("/home/pi/Room/mask.png") rows,cols,ch = faces_img.shape for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x+w, y+h), (0, 235, 0), 2) rows,cols,ch = faces.shape pts1 = np.float32([[x, y], [x, h+y], [w+x, y]]) pts2 = np.float32([[0, 0], [x, 0], [0, x]]) M = cv2.getAffineTransform(pts2,pts1) dst = cv2.warpAffine(mask,M,(cols,rows)) result_img = cv2.addWeighted(dst, 0.8, faces, 1, 0) #cv2.imshow("Faces found", image) #cv2.waitKey(0) print(x,y,w,h) cv2.imwrite("/home/pi/Room/replaced.png", result_img) 使用此条件显示空白行

Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); 在可用数据时使用此条件。

答案 1 :(得分:0)

您可以尝试以下一种方法:

get studentList(): Student[] {
    const arr: Array<Student> = [];
    if (arr.length){
       arr = getStudents();
    }else{
      arr = [new Student()];
    }
    return arr; // return it here.
}

答案 2 :(得分:0)

需要宣布学生为[];

get studentList(): Student[] {      //parent property
      const arr: Student[] = []
if (getStudents()){
      arr=getStudents();
}
else{
      arr.push(new Student());
      return (arr);
    }
  }

答案 3 :(得分:0)

您可以在html文件中执行类似的操作

<table>
<thead>
------
</thead>
    <tbody>
    <tr *ngFor="student of students">
    </tr>
    <tr *ngIf="students.length==0">
    </tr>
    </tbody>
</table>