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

主干模型,并在属性单击事件时触发到不同的端点

  •  1
  • nimgrg  · 技术社区  · 11 年前

    我有一个从服务器获取数据的主干模型,

    var Post = Backbone.Model.extend({
        url:"api/post"
    });
    

    获取时,它返回并填充模型,如下所示

    {
      by: 1,
      vote: 1,
      text: "I am a post"
    }
    

    我有一个列表视图,它将这些项目呈现为以下html

    <span className='vote'>
       <i className='up-vote'></i>
           1
       <i className='down-vote'></i>
    </span>
    

    我想做的是,当用户单击要启动 看跌,看跌 向其端点类似的服务器发出请求

    "api/post/:id/vote"
    

    我正在纠结的是,因为投票属性是Post模型的一部分,我如何使用现有的Post模型启动这个不同的端点,因为我将投票属性作为Post模型的组成部分。

    1 回复  |  直到 11 年前
        1
  •  1
  •   Puigcerber    11 年前

    我认为你有两个选择:

    • 一种是超越 Backbone.sync .
    • 另一种选择是使用AJAX请求,我认为这要简单得多。

    第二个选项的视图代码如下:

    events : {
        'click #up-vote' : 'sendPutRequest', 
    },
    sendPutRequest: function() {
        $.ajax({
            url: 'api/post/' + this.model.get('id') + '/vote',
            type: 'PUT',
            contentType: 'application/json',
            data: JSON.stringify(this.model.toJSON()),
            success: function(result) {
                // Do something with the result
            }
        });
    }