访问 Ember 控制器中的变量
Access variable in Ember controller
如何访问 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 函数中定义了 selfReference
,但你试图从被禁止的函数外部访问它。为了从函数外部访问它,您需要使用 set
函数将其设置为变量。您也可以考虑将 strings
定义为 computed property
。看看这个twiddle.
对于这种情况,您可以使用 computed property:
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}`
}
}
});
如何访问 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 函数中定义了 selfReference
,但你试图从被禁止的函数外部访问它。为了从函数外部访问它,您需要使用 set
函数将其设置为变量。您也可以考虑将 strings
定义为 computed property
。看看这个twiddle.
对于这种情况,您可以使用 computed property:
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}`
}
}
});