如何从Ember视图中的id加载对象?

时间:2013-05-18 06:01:51

标签: ember.js

我正在尝试构建一个视图来显示用户卡,来自他们的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的philosphy完全不一致。

2 个答案:

答案 0 :(得分: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挂钩,获取所需的用户

答案 1 :(得分:0)

您在View中使用的model挂钩仅在路线中可用。 model挂钩可用于为控制器设置模型。

有关详细信息,请参阅docs

本着DRY(不要重复自己)的精神,我想链接到这个伟大的SO answer,它将有助于设置一个功能性的应用程序,即ember方式。

希望有所帮助