通过Ember.js

时间:2015-06-14 16:46:53

标签: javascript ember.js controller

我的控制器有一个动作{{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);
    }

  }});

1 个答案:

答案 0 :(得分:1)

您可以定义属性selectedElement(已点击)。解除loadRight后,您可以selectedElement设置selection。 然后currentElement是简单的计算属性,取决于model.firstObjectselectedElement

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 
    }
  }
});
相关问题