我在尝试解决此问题时遇到了一些麻烦,我正在尝试动态添加包含视频网址的用户视频数据。我正在尝试访问组件中的数据,因此我可以在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()
{ }
}
任何帮助都将不胜感激。
答案 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()
的订阅回调中实际获取数据后完成