2014-05-21 66 views
0

這適用於我;當我點擊UI元素時,請求正在經歷。使用AJAX從Knockout.JS發送數據

self.removeTweet = function(tweet) { 
     $.ajax({ 
       type: 'POST', 
       url: nodeApiUrl + 'twitter/remove_tweet/', 
       contentType: 'application/json', 
       data: JSON.stringify({'index': $('#removeFromQueue').val() }), 
       dataType: 'json', 
       error: $.osf.handleJSONError 
      }); 
     self.tweets.remove(tweet); 
    }; 

這裏是Knockout.JS循環

<div id = "foo"> 
    <!-- ko foreach: tweets --> 

     <input id = "queuedTweet" data-bind="value: tweet"/> 
     <a class="btn btn-primary" data-bind="click: $parent.queueSubmit" > 
      Send 
     </a> 
     <a id = "removeFromQueue" data-bind = "click: $parent.removeTweet, value: $index" class="btn btn-danger"> 
      Delete 
     </a> 

     </br> 

    <!-- /ko --> 
    </div> 

我想送的使用AJAX $index價值,但

data: JSON.stringify({'index': $('#removeFromQueue').val() })

沒有返回值。我如何使用AJAX發送這些數據?我認爲綁定$indexvalue將是解決方案。

+0

顯示迴路其,顯示出不同的開始你的appModel –

+0

什麼呢'{'指數':$('#removeFromQueue')。val()}'resolve to in your console? – pherris

+0

您正在使用'a'標籤上的值? –

回答

1

而不是添加索引作爲錨的價值,你可以用self.tweets.indexOf(tweet)檢索:

self.removeTweet = function(tweet) { 
    $.ajax({ 
      type: 'POST', 
      url: nodeApiUrl + 'twitter/remove_tweet/', 
      contentType: 'application/json', 
      data: JSON.stringify({'index': self.tweets.indexOf(tweet) }), 
      dataType: 'json', 
      error: $.osf.handleJSONError 
     }); 
    self.tweets.remove(tweet); 
};