无法从组件中获取ember select对象的值

时间:2015-05-26 15:15:22

标签: ember.js

我是Ember的新手,所以另一个Ember问题 - 我有一个包含表格的模板。表单包含两个选择对象和一个提交按钮。选择对象是组件。我遇到问题的是在单击提交按钮时获取选择对象的选定值。以下是其中一个选择对象的模板代码:

{{
  view
  content=relationshipTypes
  value=selectedRelationshipType
  selection=selectedRelationshipType
  prompt="Select Relationship Type..."
}}

以下是select对象的component.js代码:

export default Ember.Component.extend({
  classNames: 'btn-group relationship-type-select'.w(),
  change: function(event) {
    var typeSelected = this.get('selectedRelationshipType');
    this.set('selectedRelationshipType', typeSelected);
  }
});

在包含提交按钮的模板的route.js中(带有createRelationship的操作):

export default Ember.Route.extend({
  model: function() {
    return this.modelFor('people.show').get('entityRelationships');
  },
  setupController(controller) {
    this._super.apply(this, arguments);
    controller.set('person', this.modelFor('people.show'));
  },
  actions: {
    relationshipEntityTypeSelected: function(type) {
      console.log("IN RELATIONSHIPENTITYTYPESELECTED.TYPE");
      this.set('selectedRelationshipType');
    },
    createRelationship: function() {
      var fromEmfId = this.modelFor('people.show').id
      console.log("FROM EMF ID==>" + fromEmfId);
      var toEmfId = "";
      var relationshipType = this.get('selectedRelationshipType');
      console.log("RELATIONSHIP-TYPE==>" + relationshipType);
    }
  }
});

所以我想要的是能够在createRelationship函数中获取所选择的关系类型,但到目前为止我一直无法做到。如果有人能告诉我我做错了什么,我将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

如果您的relationshipTypes只是一个包含值的数组,则在select组件中删除selection=selectedRelationshipType并仅保留value=selectedRelationshipType。然后在您的控制器中,您可以键入this.get('selectedRelationshipType')以获取所选值。