首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ember -自动重定向到firstObject

Ember -自动重定向到firstObject
EN

Stack Overflow用户
提问于 2013-01-14 00:06:37
回答 3查看 4.3K关注 0票数 17

我想要一个Ember path /clinic/1自动重定向到显示第一个医生:/clinic/1/doctor/1

每个诊所都有很多医生。

不幸的是,如果我使用以下代码:

代码语言:javascript
复制
var doctor = clinicController.get('content.doctors.firstObject');
router.transitionTo('clinic.doctor.index', doctor);

..。它不起作用,因为当这段代码在app_router.js中运行时,content.doctors.length仍然是0

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2013-07-05 19:16:32

在我的基于ember数据的应用程序中,路由上的重定向对我不起作用,因为数据不是在重定向点加载的,但这对我来说是有效的……

在角色控制器中,我转换到加载的firstObject的角色路由。

代码语言:javascript
复制
Application.RolesController = Ember.ArrayController.extend({

    selectFirstObject: function () {
        if (this.get('content').get('isLoaded')) {
            var role = this.get('firstObject');
            this.transitionToRoute('role', role);
        }
    }.observes('content.isLoaded')

});

HTH,gerry

票数 2
EN

Stack Overflow用户

发布于 2014-03-22 07:39:37

作为更新,如果您不想重定向,因为您有一个嵌套的路由,您将希望使用基于预期路由的条件重定向。

redirect有两个传递给它的参数,模型和转换对象。该转换具有属性targetName,您可以根据其值有条件地进行重定向。

代码语言:javascript
复制
redirect: function(model, transition){
  if(transition.targetName ==='doctors.index'){
    this.transitionTo('doctor', model.get('firstObject'));
  }
}
票数 1
EN

Stack Overflow用户

发布于 2015-08-29 22:16:45

对于EmberCLI用户,您可以通过执行以下操作来实现相同的目的:

代码语言:javascript
复制
//app/routes/clinics/show.js
import Ember from 'ember';

export default Ember.Route.extend({
  redirect: function(model) {
    var firstDoctor = model.get('doctors.firstObject');
    this.transitionTo('doctor', firstDoctor);
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14305255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档