选择改变和传球选择的射击方法

时间:2014-07-28 20:39:11

标签: ember.js

如何在选择更改上触发控制器上的方法并将选择传递给方法?像这样:

模板:

  {{view Em.Select content=users optionValuePath='content.id' optionLabelPath='content.firstName'}}

控制器:

assignUser: (user)->
  console.log user

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以将选择绑定到控制器属性,然后观察该属性。例如:

{{view Ember.Select
  content=users
  optionValuePath="content.id"
  optionLabelPath="content.firstName"
  selection=controller.selectedUser}}

现在更新您的控制器:

App.RouteController = Ember.ArrayController.extend({
  selectedUser: null,

  selectedUserDidChange: function () {
    if (this.get('selectedUser')) { // You might want more logic than this...
      this.assignUser();
    }
  }.observes('selectedUser'),

  assignUser: function () {
    console.log(this.get('selectedUser'));
  }
});

答案 1 :(得分:1)

您可以将value属性传递给当前选择的视图:

{{view Em.Select content=users value=selectedUser optionValuePath='content.id' optionLabelPath='content.firstName'}}

然后,在您的控制器中,您可以访问selectedUser

doSomethingOnSelect: function() {
    var selected= this.get('selectedUser');
    // go do something with selected
}.observes('selectedUser')