我的控制器有一个动作{{loadRight}},当我点击一个按钮时,它会将当前模型传递给控制器。
当我第一次加载应用程序时,我还使用firstElement computed属性从属性数组中提取第一个元素。
基本上我想要做的是创建第二个计算属性,该属性将返回单击的当前模型,以便我可以在模板中使用此信息。
我创建了一个currentElement计算属性,但是因为我吮吸了javascript,我无法将当前模型从action方法传递给computed属性。我不断得到模型没有定义错误。
我将不胜感激任何帮助。以下是我的控制器。
// controller works.js
import Ember from "ember";
export default Ember.Controller.extend({
firstElement: function () {
return this.get('model.firstObject');
}.property('model.[]'),
currentElement: function () {
if(!currentModel) {
currentModel = this.get('model.firstObject');
}
return currentModel;
}.property('model.[]'),
actions: {
loadRight: function (currentElement) {
console.log(currentElement);
}
}});
答案 0 :(得分:1)
您可以定义属性selectedElement
(已点击)。解除loadRight
后,您可以selectedElement
设置selection
。
然后currentElement
是简单的计算属性,取决于model.firstObject
和selectedElement
。
export default Ember.Controller.extend({
firstElement: function () {
return this.get('model.firstObject');
}.property('model.[]'),
selectedElement: null,
currentElement: function () {
return (this.get('selectedElement') || this.get(`firstElement`));
}.property('firstElement', 'selectedElement'),
actions: {
loadRight: function (selection) {
this.set('selectedElement', selection);
return false; // or something transition logic
}
}
});