EmberJS - 重定向

这是一种 URL 重定向或转发机制,使网页可用于多个 URL 地址。Ember.js 定义了一个 transitionTo() 方法,将应用程序移至另一条路由,其行为类似于 link-to 助手。

要从一条路由重定向到另一条路由,请在路由处理程序中定义 beforeModel 钩子。

语法

Ember.Route.extend ({
   beforeModel() {
      this.transitionTo('routeToName');
   }
});

示例

下面给出的示例描述了如何从一个路由重定向到另一个路由。创建一个新路由并将其命名为 beforemodel,然后使用以下代码打开 router.js 文件来定义 URL 映射 −

import Ember from 'ember';
//以变量 Ember 的形式访问 Ember.js 库
import config from './config/environment';
//它以变量 config 的形式提供对应用程序配置数据的访问

//const 声明只读变量
const Router = Ember.Router.extend ({
    location: config.locationType,
    rootURL: config.rootURL
});

//定义以参数为对象来创建路由的 URL 映射
Router.map(function() {
   this.route('posts', function() {
      this.route('beforemodel');
   });
});

//它指定可供应用程序其他部分使用的 Router 变量
export default Router;

使用以下代码打开在 app/routes/ 下创建的文件 beforemodel.js

import Ember from 'ember';

export default Ember.Route.extend ({
   beforeModel() {
      //打开beforemodel.hbs页面显示数据
      this.transitionTo('beforemodel'); 
   }
});

使用以下代码打开在 app/templates/ 下创建的文件 beforemodel.hbs

<h2>Hello...Welcome to Tutorialspoint!!!</h2>
{{outlet}}

输出

运行 ember 服务器,您将收到以下输出 −

Ember.js Router Redirecting

emberjs_router.html