代码之家  ›  专栏  ›  技术社区  ›  Anthony

如何更新成员模型中的记录

  •  0
  • Anthony  · 技术社区  · 11 年前

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

    对于每一行数据,都有一个具有固定值的下拉框。当对下拉框进行更改时,我想发布 POST PUT 请求返回服务器,用下拉列表中新选择的值更新该行。

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

    • 我怎样才能拿到 ID 和选定 value 在我的模型或控制器中的下拉列表中
    • 如何获取这些值并向服务器发出请求。有 App.Resource.update... ?

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

    1 回复  |  直到 11 年前
        1
  •  0
  •   fanta    11 年前

    好吧,这里有一种方法来获得所选的值,让我们把它们放在应该放的地方,好吧,首先,让我们创建一个控制器,它将装饰你的响应记录,你混合了名称,你正在使用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”属性具有null值,也会触发观察者,您需要验证它是否为null。