如何在 Ember CLI 中使用 ES6 语法对 Ember 类进行子类化

How to subclass an Ember class using ES6 syntax in Ember CLI

本文关键字:Ember 子类 语法 CLI ES6      更新时间:2023-09-26

>我想在 Ember CLI 中创建一个自定义路由类。我有以下示例在用全局变量编写的旧应用程序中工作:

App.AuthenticatedRoute = Ember.Route.Extend({ 
  beforeModel: function() { 
    //Do some things
  }
});
App.DashboardRoute = App.AuthenticatedRoute.Extend({});

我对 ES6 模块足够熟悉,知道该示例看起来像这样......

var AuthenticatedRoute = Ember.Route.Extend({
  beforeModel: function() { 
    //
  }
});
export default AuthenticatedRoute;

。但我对以下内容感到好奇:

  1. 这将位于应用程序结构的什么位置?
  2. 如何在其他模块中访问此子类?

更新:

澄清我的问题:我正在寻找有关此类自定义实现应该位于何处的信息,而不是存在于应用程序/路由目录中的常规子路由。 Ember CLI 文档指出以下内容:

To provide a custom implementation for generated routes (equivalent to App.Route when using globals), use app/routes/basic.js.

http://www.ember-cli.com/#module-directory-naming-structure

。但我在实践中找不到任何这样的例子,这似乎是一个不完整的约定。我最终将自定义实现视为标准路由(app/routes/身份验证.js)并根据需要进行导入。

如果您使用强烈推荐的 ember-cli,这将存在于app/routes/authenticated.js中,如下所示:

import Ember from 'ember';
export default Ember.Route.extend({
});

然后,您可以将其导入其他模块中,作为

import authRoute from 'app/routes/authenticated'