2

如果路由存在,路由器会很好地处理 URL 并导致调用适当的路由。但是路由不存在的情况如何处理呢?

应用程序.js

App = Ember.Application.create();

App.Router.map(function () {
  this.resource('about', { path: "/about" });
  this.resource('admin', { path: "/admin" });
});

索引.html

<script type="text/x-handlebars" id="about">
      <h1>ABOUT</h1>
</script>

<script type="text/x-handlebars" id="admin">
      <h1>ADMIN</h1>
</script>

用例:

当用户输入 URL index.html#/xxxx 时,我想转换到一种错误页面,指示请求的“页面”没有退出。

到目前为止,我还没有找到解决方案...

4

2 回答 2

8

您可以像这样添加一条捕获所有路线:

this.route('missing', { path: "/*path" });

然后在这条路线内重定向。我的实现如下所示:

App.MissingRoute = Ember.Route.extend({
    redirect : function(){
        App.LOG.warn("No Route for given URL found. Will transition to Index Route instead.");
        this.transitionTo("index");
    }
});
于 2013-08-06T15:15:33.723 回答
3

Ember.JS:如果您正在寻找另一种方法,那么如何处理无效 URL就是一个很好的例子。

于 2013-08-06T17:36:04.420 回答