0

我正在从中获取记录列表,App.Resource.find()这很好。

对于每一行数据,都有一个带有固定值的下拉框。当对下拉框进行更改时,我想向服务器发出一个POSTPUT请求以使用下拉列表中新选择的值更新该行。

我在两件事上遇到了麻烦:

  • 如何在我的模型或控制器中获取ID和选择value下拉菜单
  • 如何获取这些值并向服务器发出请求。有App.Resource.update...吗?

我有一个带有本地数据的工作示例的 jsBin:http: //jsbin.com/OcAyoYo/84/edit

4

1 回答 1

0

好的,这是获取选定值的一种方法,让我们把东西放在应该去的地方,好的,首先,让我们创建一个控制器来装饰你的响应记录,你混合名字,你正在使用 Post,所以,我将使用该名称,这是控制器:

App.PostController = Ember.ObjectController.extend({
  selectedChanged: function() {
    //here, you have access to the selected value with this:
    // this.get('selected')

    //And also, this controller represents you object rendered on the screen,
    //so, you can change it here if you want like this:
    //this.set('whataverPropertyYouWantToChange', 'newValue');

    //then you can save this record(send the request to the server) by just doing this:
    //this.save(); this will make a request to the server
  }.observes('selected')
});

然后,为了使用该控制器,将呈现记录的循环更改为:

{{#each model itemController="post"}}
  <tr>
    <td>{{author}}</td>
    <td>{{book}}</td>
    <td>
      {{view Ember.Select
        contentBinding= 'App.names.content'
        selectionBinding='selected'}}
    </td>
  </tr>
{{/each}}

请注意,在 PostController 中,即使 'selected' 属性具有空值,观察者也会被触发,您需要验证它是否不为空。

于 2013-08-24T18:34:53.463 回答