angular - 无法读取 Angular2 Typescript 中未定义的属性 'value'

标签 angular typescript

我正在构建一个 Angular2 应用程序,并试图通过 *ngIf 删除点击时的 div

这是我的观点:

<router-outlet>

<div class="releasesMenu" *ngIf="detailedInfo">
  <h1>Releases</h1>
  <div class="search">
    <input type="text" #search (keyup)="0" placeholder="Find release by its name, song or year">
  </div>
</div>

<div class="releasesOutlet container">
        <div class="row releasesBlock">
           <div *ngFor="let release of (releases| searchFilter: search.value )" class="releaseRender" (click)="onSelect(release)">
              <div class="releaseRenderWrap" *ngIf="!selectedRelease">
            <span>Something interesting...</span>
          </div>
       </div>

        <div class="releaseDetails" *ngIf="selectedRelease">
          <div class="releaseDetailsWrap">
                <span>Some details...</span>
          </div>
        </div>
      </div>
  </div>
</router-outlet>

这是我的 Controller :

import { Component, OnInit } from '@angular/core';
import { SearchFilter } from './../search-filter.pipe';
import { ReleasesService } from '../releases/releases.service';

@Component({
  selector: 'releases-component',
  providers: [ReleasesService],
  templateUrl: './app/releases/releases.component.html',
  styleUrls: ['./app/releases/releases.component.css','./css/grid.css']
})

export class ReleasesComponent implements OnInit { 
  releases: any = [];
  release: any;
  selectedRelease: any;
  private detailedInfo: boolean;

  onSelect(release){
    this.detailedInfo = false;
    this.selectedRelease = release;
    console.log(release)
    }

  constructor(private releasesService: ReleasesService){ }

  ngOnInit(){
    this.releasesService.getReleases()
    .subscribe(data => this.releases = data);
  }

}

我想要的是删除/隐藏 (click)="onSelect(release) 上的 .releasesMenu block 。但我收到错误: 无法读取未定义的属性“值”

最佳答案

那是因为 #search 位于 *ngIf

将其添加到您的组件类

@ViewChild('search')search:ElementRef;

并将 *ngFor 更改为

*ngFor="let release of (releases| searchFilter: search?.nativeElement?.value )"

另请参阅Angular2, *ngIf and local template variables

关于angular - 无法读取 Angular2 Typescript 中未定义的属性 'value',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43640861/

相关文章:

angular - 如何使用 ng2-file-upload 重置并允许上传文件

angular - 在 angular2 中订阅

angular - Http Get 返回错误

angular - 如何以 Angular 4 路由

Angular/Typescript - 在两个相似对象之间分配对象属性的快速方法

typescript - 为什么这种字符串类型保护不起作用?

TypeScript - null 与 undefined

typescript 配置: is module setting case sensitive?

javascript - 如何使用 Luxon 获取 UTC 日期的相对时间?

visual-studio - 已编译的 JavaScript 文件未出现在 Visual Studio 项目中