0

我正在尝试从他们的 id 构建一个视图来显示用户卡。所以理想情况下,我的呼叫车把看起来像:

<p>{{view App.UserThumb authorId}}
{{comment}}</p>

然后在我的 UserThumb 视图中,我希望能够以某种设置方法或模型函数加载模型,就像我使用控制器的方式一样:

App.UserThumb = Ember.View.extend({
  model: function(view, authorId) {
    User.find(authorId, function(user) { view.set('content', user); } );
  }
}

任何人都可以帮助我理解“正确”或至少是一种可行的方法吗?在最坏的情况下,我可以先创建对象,但我想先保留 id 一点,除非这与 Ember 的哲学完全不符。

4

2 回答 2

1

这应该做

{{#each id in listOfIds}}
  {{view App.UserThumb idBinding="id"}}
{{/each}}

App.UserThumb = Ember.View.extend({
  didInsertElement: function() {
    var authorId = this.get('id');
    User.find(authorId, function(user) { view.set('content', user); } );
  }
}

只有在插入视图后,didInsertElement才会执行获取所需用户的钩子

于 2013-05-20T13:03:32.670 回答
0

您在视图中使用的model钩子仅在 Route 中可用。该model钩子可用于设置控制器的模型。

有关详细信息,请参阅此处的文档

本着 DRY(不要重复自己)的精神,我想链接到这个很棒的SO 答案,这将有助于以 ember 方式设置功能性应用程序。

希望能帮助到你

于 2013-05-18T08:15:47.023 回答