在某些州隐藏侧边栏和导航栏

时间:2015-12-05 04:53:25

标签: javascript ember.js

我使用以下代码隐藏路线中应用模板中的导航栏和侧边栏:login.indexerrors.404errors.505 hideNavbarAndSidebar: computed.equal('currentRouteName', 'index.index', 'login.index', 'errors.404', 'errors.505', 'errors.feature' ), 和errors.feature:

index.index

问题是:不起作用。仅适用于第一条路线private Optional<Employee> employee = Optional.empty(); public Optional<Employee> getEmployee() { return this.employee; } public void setEmployee(Employee employee) { this.employee = Optional.of(employee); // null not allowed } public void removeEmployee() { this.employee = Optional.empty(); }

我怎样才能改进这段代码来制作我需要的东西?

感谢。

1 个答案:

答案 0 :(得分:1)

Ember.computed.equal只接受一个依赖键和一个值:

function equal(dependentKey, value)

如果要与多个值进行比较,则必须编写自己的计算属性,该属性取决于currentRouteName并将其与所有值进行比较。

这是在最新的Ember中如何做到的一种方式:

hideNavbarAndSidebar: Ember.computed('currentRouteName', function() {
    let route = this.get('currentRouteName');
    let routes =  ['index.index', 'login.index', 'errors.404', 'errors.505','errors.feature'];
    return routes.indexOf(route) !== -1;
})