TypeError: Невозможно прочитать свойство 'toUpperCase' из неопределенного - PullRequest
0 голосов
/ 19 ноября 2018

Я пробовал использовать пользовательский канал. Это мой файл канала

import { Pipe, PipeTransform } from '@angular/core';
import { User } from 'src/app/user';
import { ApiService } from 'src/app/api.service';
import { Observable } from 'rxjs';
import { isNgTemplate } from '@angular/compiler';
import { map } from 'rxjs/operators';

@Pipe({
  name: 'my-pipe'

})
export class MyPipePipe implements PipeTransform {
  isEqual = false;
  api: ApiService;

  transform(post_id: number, users: Observable< User[]> ): any {
   // users = this.api.getUserList();
    users.subscribe(user => user.filter(userss => {
      if (userss.id === post_id && post_id !== null) { this.isEqual = true; } else {
        console.log(this.isEqual + ' ' + ' hataa');
      }
    }));

  }

Все, что я хочу - несуществующие пользователи не могут публиковать сообщения. Поэтому я пытаюсь выровнять идентификатор пользователя с идентификатором пользователя. Вот мой HTML-код

    <div class="form-group">
      <label for="userId">User Id</label>
      <input type="number" class="form-control" id ="userId" name="userId" required [(ngModel)]="posts.userId">
     <!--<div   class="tetx text-danger" *ngIf="!isEqual" >Invalid Id!!!</div>--> 
      <div  *ngIf=" my-pipe: posts.userId " >

Invalidd


      </div>

    </div>

Но, к сожалению, я получаю эту ошибку:

[Angular] TypeError: Невозможно прочитать свойство 'toUpperCase' из неопределенного

1 Ответ

0 голосов
/ 19 ноября 2018

Ошибка исходит от углового компилятора, который пытается скомпилировать ваш шаблон.

Выберите другое имя для вашей трубы, например myPipe:

@Pipe({
  name: 'myPipe'

...

*ngFor="let u of users_s | myPipe"

И вы не можете использовать трубу, не передавая ей значение:

*ngIf=" my-pipe: posts.userId "

это должно быть что-то:

*ngIf="postId | myPipe"
...