Javascript Ember控制器中的访问变量

Javascript Ember控制器中的访问变量,javascript,ember.js,Javascript,Ember.js,如何访问Ember控制器中的变量? 我尝试过这些方法,但都不管用: import ObjectController from '@ember/controller'; export default ObjectController.extend({ currentPhase: 1, init: function () { var selfReference = this; this.set("currentPhase",1); }, strings:

如何访问Ember控制器中的变量? 我尝试过这些方法,但都不管用:

import ObjectController from '@ember/controller';
export default ObjectController.extend({

  currentPhase: 1,

  init: function () {
      var selfReference = this;
      this.set("currentPhase",1);
  },

  strings: {
      title: "Title",
      phase1: "Fase " + selfReference.get("currentPhase"),
      phase2: "Fase " + currentPhase
  }
});

在您的例子中,您已经在init函数中定义了
自引用
,但您试图从禁止的函数外部访问它。为了从函数外部访问它,需要使用
set
函数将其设置为变量。您可以考虑定义<代码>字符串作为<代码>计算属性< /代码>。看看这个。

对于这种情况,您可以使用:


Init只运行一次,因为默认值为1,所以Init调用是多余的,当您覆盖来自基本对象的方法时,请始终调用
this.\u super(…参数)。对象控制器不再是一个东西,我知道这只是命名,但这样的术语会让人困惑。获取当前阶段一次并将其保存到变量中。无需对同一值进行多次
Get
调用。
import Controller from '@ember/controller';
import { computed } from '@ember/object';

export default Controller.extend({
  currentPhase: 1,

  strings: computed('currentPhase', function() {
    let currentPhase = this.get('currentPhase');
    return {
      title: "Title",
      phase1: `Phase ${currentPhase}`,
      phase2: `Phase ${currentPhase}`
    }
  }
});