如何过渡到404" catch-all"风格路线?

时间:2015-01-10 00:03:44

标签: javascript redirect ember.js ember-router

我的索引路径中有子域查找。它查找子域slug的计划并重定向到计划页面。如果没有计划返回,则需要呈现404页面。这是重定向的代码。不可否认,我是ember的新手,但这段代码似乎是正确的。我在控制台中得到零错误,它只是转到了我试图重定向的路线:

控制器/ index.js

model: function() {
    var self = this;

    if ( this.isHomePage() ) {

      return Ember.Object.create();

    } else {

      // Get resources
      var parts = window.location.hostname.split('.');
      var subdomain = parts[0];

      return this.store.find('plan', { plan_subdomain: subdomain }).then(function(plans) {
        var returnedPlan = plans.get('firstObject');
        if (Ember.isEmpty(returnedPlan)){
          debugger;
          return self.transitionTo('fourOhFour');
        } else {
          return returnedPlan;
        }
      });

    }
  },

router.js

  this.route("fourOhFour", { path: "*path"});

1 个答案:

答案 0 :(得分:3)

您将404路径指定为全部捕获

this.route("fourOhFour", { path: "*path"});

这是有道理的,但是你告诉Ember转换到那个通配符路由,但是URL是什么? /*

您需要通过指定transitionTo()

的第二个参数告诉Ember该路径应该是什么

请参阅here以获取示例

我回答了类似的问题here