gpt4 book ai didi

ember.js - ember - View 中的 didLoad 事件等待 ember-data 模型加载

转载 作者:行者123 更新时间:2023-12-02 00:11:57 24 4
gpt4 key购买 nike

您好,我有以下路线:

MB3.PlaylistRoute = Ember.Route.extend({
model: function(params) {
return MB3.Playlist.find(params.playlist_id);
}
});

播放列表有一个带有轨道的 hasMany 关系。在播放 ListView 中,我想对播放列表第一首轨道的属性做一些逻辑。

所以我添加了这段代码:

MB3.PlaylistView = Ember.View.extend({
didInsertElement: function() {
console.log(this.get("controller.tracks").objectAt(0).get("title"));
}
});

问题是标题未定义(我认为是因为它尚未加载。我尝试的第二件事是等待 didLoad 事件:

MB3.PlaylistView = Ember.View.extend({
didInsertElement: function() {
var self=this;
this.get("controller.tracks").on("didLoad", function() {
console.log(self.get("controller.tracks").objectAt(0).get("title"));
});
}
});

但这也记录了 null。我该如何实现?

最佳答案

就像 Adrien 在评论中所说的那样,您似乎遇到了 issue 587 .也就是说,我认为在这种情况下您实际上不需要“didLoad”回调。相反,请尝试使用计算属性来获取 video_id 或轨道标题。例如:

MB3.PlaylistView = Ember.View.extend({
firstTrackTitle: function() {
return this.get('controller.tracks.firstObject.title');
}.property('controller.tracks.firstObject.title')
});

然后在您的模板中,如果定义了此属性,则嵌入播放器:

{{#if view.firstTrackTitle}}
embed code here
{{/if}}

FWIW 我会把这个逻辑放在 Controller 而不是 View 中,但想法相同。

关于ember.js - ember - View 中的 didLoad 事件等待 ember-data 模型加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com