Javascript 在组件中使用导入的常量,而不将其设置为局部变量

Javascript 在组件中使用导入的常量,而不将其设置为局部变量,javascript,angularjs,ecmascript-6,Javascript,Angularjs,Ecmascript 6,有可能吗 import {MY_CONST} from '../const-file.js'; const myComponent = { controller: class { consturctor() { } }, template: ` <p>{{MY_CONST}}</p> ` } 从“../CONST file.js”导入{MY_CONST}; 常量myComponent={ 控制员:班级{ constructor(){

有可能吗

import {MY_CONST} from '../const-file.js';

const myComponent = {
  controller: class {
    consturctor() {
    }
  },
  template: `
  <p>{{MY_CONST}}</p>
  `
}
从“../CONST file.js”导入{MY_CONST};
常量myComponent={
控制员:班级{
constructor(){
}
},
模板:`
{{MY_CONST}}

` }
而不是像这样将变量设置为局部变量

import {MY_CONST} from '../const-file.js';

const myComponent = {
  controller: class {
    consturctor() {
       this.MY_CONST = MY_CONST;
    }
  },
  template: `
  <p>{{$ctrl.MY_CONST}}</p>
  `
}
从“../CONST file.js”导入{MY_CONST};
常量myComponent={
控制员:班级{
constructor(){
this.MY_CONST=MY_CONST;
}
},
模板:`
{{$ctrl.MY_CONST}

` }

我发现每次我需要使用它时导入和设置const都有点多余,我很确定我缺少了一些东西

是的,您可以在组件中的任何位置使用它,但在
模板
中使用它必须是控制器的属性。但是,对于常量,您不需要它成为动态模板替换的一部分,只需使用

const myComponent = {
  controller: class {},
  template: `
  <p>${MY_CONST}</p>
  `
}
const myComponent={
控制器:类{},
模板:`
${MY_CONST}

` }
是的,您可以在组件中的任何位置使用它,但在
模板
中使用它必须是控制器的属性。但是,对于常量,您不需要它成为动态模板替换的一部分,只需使用

const myComponent = {
  controller: class {},
  template: `
  <p>${MY_CONST}</p>
  `
}
const myComponent={
控制器:类{},
模板:`
${MY_CONST}

` }
不可能在
{{MY_CONST}}

这样的组件中使用它。Angular编译器无法知道
MY_CONST
局部变量的存在

在ES6中,很可能将其硬编码为模板,如

template: `<p>${MY_CONST}</p>`
模板:`${MY_CONST}

`
或在ES5中:

template: '<p>' + MY_CONST + '</p>'
模板:''+MY_CONST+'

'
这当然比模板绑定的性能更好,但可能不够灵活。这主要取决于我的常数到底是什么


请注意,当模板包含在单独的文件中并加载了
templateUrl

时,这将不起作用。不可能在
{{MY_CONST}}

这样的组件中使用它。Angular编译器无法知道
MY_CONST
局部变量的存在

可以将其硬编码为ES6中的模板,如

template: `<p>${MY_CONST}</p>`
模板:`${MY_CONST}

`
或在ES5中:

template: '<p>' + MY_CONST + '</p>'
模板:''+MY_CONST+'

'
这当然比模板绑定的性能更好,但可能不够灵活。这主要取决于我的常数到底是什么

请注意,当模板包含在单独的文件中并使用
templateUrl
加载时,这将不起作用