Aurelia的可选视口

时间:2015-10-21 19:47:52

标签: javascript aurelia aurelia-router

我正在设置一个包含多个视口的应用。但是我希望其中一个视口是可选的,即如果视口未在某个路径中定义,则它应该不呈现。但是,如果我尝试这样做,Aurelia会抛出一个错误。还有另一种方法可以使视口可选吗?

2 个答案:

答案 0 :(得分:2)

如果aurelia中没有内置支持,您可以将不需要的视口点配置为具有以下逻辑的模块:

import {noView, inject} from 'aurelia-framework';

@noView
@inject(Element)
export class HiddenViewPort {
  constructor(element) {
    this.element = element;
  }

  activate() {
    // hide the router-view element
    this.element.parentNode.classList.add('aurelia-hide');
  }

  deactivate() {
    // show the router-view element
    this.element.parentNode.classList.remove('aurelia-hide');
  }
}

答案 1 :(得分:0)

据我所知,不支持可选视口。我们的解决方法是使用 empty 模块,没有任何内容:

import {inlineView} from 'aurelia-templating';

@inlineView('<template></template>')
export class EmptyViewModel {
}