Ember.js: Considere tornar `currentModel` em` Ember.Route` público

Criado em 15 jul. 2015  ·  4Comentários  ·  Fonte: emberjs/ember.js

Essa API privada é uma que eu uso com frequência em meus aplicativos para obter programaticamente o modelo da rota atual. É principalmente uma conveniência para this.modelFor(this.routeName) ¹. Isso é especialmente útil para escrever código de rota reutilizável que precisa chegar ao modelo da rota atual.

¹ Embora routeName seja privado, consulte # 11759

Comentários muito úteis

Parece bom, vou criar um apelido em ApplicationRoute que é apenas currentModel: function () { return this.modelFor(this.routeName); } porque é imensamente útil e uma pena que esteja sendo esquecido. Mas devemos continuar!

Todos 4 comentários

: +1: super útil - quando vejo em uma rota this.modelFor('a.route.name') eu sempre tenho que verificar novamente para ver se é o nome da rota atual ou não. Isso eliminaria essa fonte de confusão, especialmente parece que a melhor prática é fazer com que a rota manipule as ações manipulando seu próprio modelo e (idealmente) não o modelo de outra rota.

Discutimos isso na reunião da equipe principal esta tarde e decidimos que gostaríamos de manter a privacidade. Como você mencionou this.modelFor(this.routeName) (acabei de sugerir # 11759 que devemos tornar this.routeName públicos) é uma boa maneira de fazer isso com APIs públicas. Você também pode usar this.get('controller.model') . Ambas as sugestões devem remover a ambigüidade com this.modelFor('a.b.c') que @davidgoli mencionou ..

Obrigado por abrir o assunto para discussão. Vou encerrar agora que discutimos e decidimos manter a privacidade.

Parece bom, vou criar um apelido em ApplicationRoute que é apenas currentModel: function () { return this.modelFor(this.routeName); } porque é imensamente útil e uma pena que esteja sendo esquecido. Mas devemos continuar!

Esta página foi útil?
0 / 5 - 0 avaliações