如何过渡到 404 "catch-all" 风格的路线?
How to transition to 404 "catch-all" style route?
我在我的索引路由中查找了一个子域。它查找子域 slug 的计划并重定向到计划页面。如果没有计划 returns 它需要呈现 404 页面。这是重定向的代码。诚然,我是 ember 的新手,但这段代码似乎是正确的。我在控制台中得到零错误,它只是转到我试图重定向的路由:
controller/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"});
您将 404 路径指定为包罗万象
this.route("fourOhFour", { path: "*path"});
这是有道理的,但是你告诉 Ember 转换到那个通配符路由,但是 URL 是什么? /*
?
您需要通过为 transitionTo()
指定第二个参数来告诉 Ember 该路径应该是什么
请参阅 here 示例
我回答过类似的问题here
我在我的索引路由中查找了一个子域。它查找子域 slug 的计划并重定向到计划页面。如果没有计划 returns 它需要呈现 404 页面。这是重定向的代码。诚然,我是 ember 的新手,但这段代码似乎是正确的。我在控制台中得到零错误,它只是转到我试图重定向的路由:
controller/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"});
您将 404 路径指定为包罗万象
this.route("fourOhFour", { path: "*path"});
这是有道理的,但是你告诉 Ember 转换到那个通配符路由,但是 URL 是什么? /*
?
您需要通过为 transitionTo()
请参阅 here 示例
我回答过类似的问题here