这对我有用;当我点击UI元素时,请求就会完成。
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发送此数据?我认为将$index
绑定到value
将是解决方案。
答案 0 :(得分: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);
};