从角度2分量

时间:2017-12-06 00:18:25

标签: javascript angular typescript

我在尝试解决此问题时遇到了一些麻烦,我正在尝试动态添加包含视频网址的用户视频数据。我正在尝试访问组件中的数据,因此我可以在HTML中进行插值。我不确定这是如何工作的,但我试过这样做..

app.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
   selector: 'app-video',
   templateUrl: './video.component.html',
   styleUrls: ['./video.component.scss'],
   providers: [
      DashboardServiceProxy
   ]
})

export class VideoComponent implements OnInit {
   videos: UserVideoDto[] = [];
   // videos: Array<UserVideoDto> = []; 

constructor(
    private _dashboardService: DashboardServiceProxy
) {
    console.log(this.videos.VideoData); //data im trying to access
  }

  ngOnInit() {
    this.getVideos();
  }

  getVideos() {
    this._dashboardService.getAllUserVideos().subscribe((result) => {
    this.videos = result;
    console.log(this.videos);
  });
  }

  }

目前我只是尝试console.log数据,但我收到的错误是[ts] Property 'videoData' does not exist on type 'UserVideoDto[]'

这是UserVideoDto []类

public class UserVideoDto : EntityDto
  {
    public long UserId { get; set; }

    public DateTime CreationTime { get; set; }

    public int TenantId { get; set; }

    public string VideoData { get; set; }

    public string Thumbnail { get; set; }

    public String Name { get; set; }

    public String Series { get; set; }

    public String Subname { get; set; }

    public UserVideoDto()
    { }

  }

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

您能提供UserVideoDto界面或课程吗?基本上,由于videoData上没有UserVideoDto字段,因此您会从typescript编译器中获得失败。

对于测试,你可以试试这个:

videos: Array<any> = []; // this should make TS error go away, but it won't solve issue you have

另请注意,正确的表示法是

videos: Array<UserVideoDto> = [];

在项目的某个地方你应该有像

这样的东西
interface UserVideoDto {
    ...
    public videoData: any;
    ...
}

class UserVideoDto {
    ...
    public videoData: any;
    ...
}

答案 1 :(得分:0)

您正尝试访问数组中的VideoData,而不是UserVideoDto的实例。

它应该是这样的。视频[x] .VideoData

答案 2 :(得分:0)

正如yfranz刚刚提到的那样,您正在尝试访问在UserVideoDto []中不存在的属性。

此外,您的console.log位于构造函数中,如果您尝试访问该内容,则无法获取所需的数据,因为您使用ngOnInit中的getVideos方法获取视频。对“视频”的任何数据操作都是如此。应该在_dashboardService.getAllUserVideos()

的订阅回调中实际获取数据后完成