我正在我的应用程序中实现ember-engine.我正在使用ember-simple-auth插件进行身份验证.它适用于主要的应用程序路线.
我使用addon提供的mixin扩展受保护的路由.
// app/routes/protected.js
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin);
Run Code Online (Sandbox Code Playgroud)
现在我创建了一个用户引擎.它有用户列表和其他一些东西.我希望用户只有在经过身份验证后才能访问此页面.在主应用程序路由中,我可以使用mixin扩展路由,如果用户未经过身份验证,它将重定向到登录路由.但同样的事情不适用于用户引擎路由.
有关如何使用Ember引擎实现Ember-simple-auth的任何想法?
参考: -
Ember引擎 - https://github.com/ember-engines/ember-engines
Ember simple auth - https://github.com/simplabs/ember-simple-auth
编辑-
//lib/users-engine/routes/edit.js
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin);
Run Code Online (Sandbox Code Playgroud)
我试图像上面那样扩展引擎路线.
我刚刚开始研究Ember.js引擎.有一点值得注意的是,对于我在引擎代码中所做的每一项更改,我都需要将其重新安装到主机应用程序中.没有实时重新加载,重建或任何此类.
有没有办法消除这种流动,因为它会大大减缓开发速度.
我已经创建了一个独立的路由引擎ember-engines
0.4.0
,ember-cli
2.10.0
.
如果我调用引擎索引route(/thingy/
),我会收到此错误:
Assertion Failed: Asset manifest does not list any available bundles.
消费App router.js
:
this.mount('thingy-frontend', { as: 'thingy', path: 'thingy' });
Run Code Online (Sandbox Code Playgroud)
引擎应用routes.js
:
this.route('index', { path: '/' });
Run Code Online (Sandbox Code Playgroud)
通过node_modules/
消费ember-cli
应用程序目录中的符号链接"安装"引擎.(见这里原因).
只是为了好玩,我试图改变路线,以测试是否有效......
消费App router.js
:
this.mount('thingy-frontend', { as: 'thingy' });
Run Code Online (Sandbox Code Playgroud)
引擎应用routes.js
:
this.route('index', { path: 'new' });
Run Code Online (Sandbox Code Playgroud)
我打电话给/thingy/new
了一个UnrecognizedURLError
.另外,如果我调用根路径,我会得到一个Assertion Failed: Asset manifest does not list any available bundles.
此外,如果我console.log('...');
在引擎中放置一个 …