我正在构建一个播放列表。我有两个模型描述来自服务器的json响应
App.ChartsModel = Em.Model.extend({
playlist: Em.belongsTo('App.PlaylistModel', { key: 'playlist', embedded: true })
})
App.PlaylistModel = Em.Model.extend({
description: Em.attr()
uc_date: Em.attr()
})
这些模型的实例在路径中成功加载到控制器中。然后我有我的主要模板:
#playlists
App.PlaylistView controllerBinding="controllers.playlist" contentBinding="content.playlist"
p {{content.playlist}}
然后App.PlaylistView模板如下所示:
#playlist
p {{this}}
p {{model}}
以下是呈现的内容:
<div id="playlists">
<div id="playlist">
<p>
<App.PlaylistController:ember456>
</p>
</div>
<p>
<App.PlaylistModel:ember454>
</p>
</div>
我希望“#playlist”div具有一个带有App.PlaylistModel实例的p-tag。不确定为什么contentBinding没有生效。
有什么想法吗?
答案 0 :(得分:0)
我认为将模型加载到控制器中是正确的方法。我将假设它是PlayListController,因此它的模型是一个播放列表,你有另一个名为'charts'的属性,带有Charts实例。
但是,对于视图,您应该只使用控制器作为其上下文(而不是内容),并通过该上下文访问模型。我不会直接搞乱它的控制器或上下文绑定,也不会认为它们是不同的。如果您确实需要在绑定中指定内容,可以尝试使用唯一名称,例如chartsBinding="controllers.playlist.charts"
。您的contentBinding可能正常工作。您可以使用{{content}}
在模板中访问它,而不是{{this}}
。
无论如何,您可能想尝试将控制器指定为视图的上下文,如:
#playlists
App.PlaylistView contextBinding=controller
然后,在App.PlaylistView模板中:
#playlist
p {{this}}
p {{charts}}
p {{model}}
应该为您提供:播放列表控制器(上下文),图表实例和播放列表实例。