我正在升级到Ember Octane,我知道mixin已经被弃用。我将继续使用它们,直到我找到替换它们的方法。同时,我希望将路由切换到使用新的类语法,而不是Route.extend
。新的路由类语法是否支持路由mixin?如果支持,如何操作?
这与Ember Octane Upgrade How to pass values from component to controller有关
燃烧前辛烷值:
import Route from '@ember/routing/route';
import AbcAuthenticatedRouteMixin from '../../mixins/abc-authenticated-route-mixin';
export default Route.extend(AbcAuthenticatedRouteMixin, {
model() {
return {
oldPassword: '',
newPassword: '',
confirmPassword: ''
};
},
})
ember辛烷值:
import Route from '@ember/routing/route';
import AbcAuthenticatedRouteMixin from '../../mixins/abc-authenticated-route-mixin';
export default class ChangePasswordRoute extends Route(AbcAuthenticatedRouteMixin, {
model() {
return {
oldPassword: '',
newPassword: '',
confirmPassword: ''
};
},
}) // I get an error here that says: '{' expected
1条答案
按热度按时间cidc1ykv1#
原生类语法没有直接对应于Ember混合系统的语法。如果您想在转换为Octane时继续使用混合系统,可以将经典类扩展语法与原生类语法混合使用:
尝试
此外,一些新的框架类,如Glimmer组件,根本不支持Ember mixin。未来,mixin将从框架中移除,并且不会被直接替换。对于使用mixin的应用,建议的路径是将mixin重构为其他模式,包括:
纯原生类,通过类继承共享功能。实用程序函数,可以导入并在多个类中使用。服务,可以注入到多个类中,在它们之间共享功能和状态。