Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aurelia 如何在视图模板中使用静态方法_Aurelia_Aurelia Templating - Fatal编程技术网

Aurelia 如何在视图模板中使用静态方法

Aurelia 如何在视图模板中使用静态方法,aurelia,aurelia-templating,Aurelia,Aurelia Templating,我想在视图模板中使用静态类常量 Javascript class FilterModel { static const FILTER_TYPE_STRING() { return 'string'; } } HTML 简短回答:绑定语言不支持这一点 我以前遇到过这个问题,但没有找到好的解决办法。在这种情况下,我通常定义一个常量,该类将在构造函数中设置该常量的值,并添加注释以显示它应该是静态的 const _filterTypeString: string = 'string'

我想在视图模板中使用静态类常量

Javascript

class FilterModel {
  static const FILTER_TYPE_STRING() {
    return 'string';
  }
}
HTML


简短回答:绑定语言不支持这一点

我以前遇到过这个问题,但没有找到好的解决办法。在这种情况下,我通常定义一个常量,该类将在构造函数中设置该常量的值,并添加注释以显示它应该是静态的

const _filterTypeString: string = 'string';

export class FilterModel {
    /*static*/ filterTypeString: string = _filterTypeString;
}
更详细的回答:JavaScript中的静态成员被直接传输到类中,而不是原型中,因此实例没有对它的引用。区别在于:

class MyClass {
    instanceMember: number = 256
    static staticMember: number = 1024;
}

//referencing them:
MyClass.prototype.instanceMember
MyClass.staticMember
每次创建对象实例时,它都会创建原型的副本,因此
将具有与原型相同的值。这也是Aurelia在创建视图模型时所做的,创建实例

在视图模板中,只能访问从原型继承的该对象的成员。由于静态方法不是该对象的成员,因此无法访问它。当然,您可以创建一个引用,但是我发现这个解决方法比上面的方法更烦人。使用代码示例:

export class FilterModel {
    static filterTypeString: string = 'string';
    refToFilterTypeString = FilterModel.filterTypeString;
}
HTML:



Im使用ES2016/ESNext。你能提供一个完整的例子吗?对不起,你的问题对我来说没有意义。视图模型是一个实例。为什么要从自己的类中使用静态方法?
export class FilterModel {
    static filterTypeString: string = 'string';
    refToFilterTypeString = FilterModel.filterTypeString;
}
<div show.bind="selectedFacet.type === refToFilterTypeString">
</div>