【问题标题】:EmberJS access properties without model objectEmberJS 在没有模型对象的情况下访问属性
【发布时间】:2015-09-24 21:19:38
【问题描述】:

我的路线设置是这样的

export default Ember.Route.extend({
  model: function(params) {
    return this.store.findRecord('organization', params.organization_id);
  }
});

当我打印出属性时,我必须在我的模板中执行此操作。

{{ model.name }}

无论如何我可以删除模型部分,所以它只是名称吗?

【问题讨论】:

  • 您为什么要这样做?标准设计模式是将其保留在:guides.emberjs.com/v2.0.0/routing/specifying-a-routes-model
  • @WebDevDude,如果您尝试访问没有model 的属性,那么它将检查控制器中是否存在此类属性。如果是这样,它将被渲染。它不会检查model 内部。请更新您不想要model 的原因。因此,社区可以更好地帮助您。谢谢
  • @phkavitha 我不知道这是一种不好的做法。我实际上认为我做错了什么,因为 {{ model.name }} 在我看来并不正确。
  • @WebDevDude 这实际上是 ObjectControllers(现已弃用)曾经做的事情,它们会将您的模型代理到控制器,因此您可以在模板中仅作为属性名称访问它。

标签: ember.js


【解决方案1】:

如果你愿意,你可以这样做,虽然这不是很好的做法。在 setupController 钩子中,

setupController(controller, model) {
  this._super(controller, model);
  controller.set('name', model.get('name'));
}

它将在控制器上设置一个属性,以便您可以在模板中以{{name}} 访问它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2023-03-31
    • 1970-01-01
    • 2014-01-12
    • 2015-04-26
    相关资源
    最近更新 更多