使用来自knockout js array

时间:2016-03-25 12:45:49

标签: javascript jquery ajax knockout.js

我有一张包含此类信息的表格 enter image description here

我正在使用knockout js并将所有数据放在一个数组上并将它放在这个表上。

self.allchildrendata = ko.observableArray();
self.viewAllUserChildrenCard = function () {

            $.ajax({
                type: 'POST',
                url: BASEURL + '/index.php/main/childrenCardInfo',
                contentType: 'application/json; charset=utf-8',
                dataType :'json'
            })
            .done(function(childrencards) {
                self.allchildrendata.removeAll();
                $.each(childrencards, function (index, childrencard) {
                self.allchildrendata.push(childrencard);
                console.log(self.allchildrendata());
                });
            })
            .fail(function(xhr, status, error) {
                alert(status);
            })
            .always(function(data){                 
            });
        };
        self.viewAllUserChildrenCard();

接下来我想点击rebecca的添加金钱按钮,并希望发送只有rebecca的原始信息,以便我可以用它在数据库中找到她并添加钱,但我不知道如何发送orig_id,我试过这种方式。

self.giveCashtoChild = function(){
            $.ajax({
                type: 'POST',
                url: BASEURL + '/index.php/main/addUserChildrenCash' + "/" + self.allchildrendata().orig_id ,
                contentType: 'application/json; charset=utf-8'
            })
            .done(function() {

            })
            .fail(function(xhr, status, error) {
                alert(status);
            })
            .always(function(data){                 
            });
        } 

这是html代码,我在每个按钮上都有一个数据绑定,所以我可以发送原始数据。

<tbody data-bind="foreach: allchildrendata">
                    <tr>
                    <td class="text-center"><span data-bind="text : $data.children_name"></span></td> 
                    <td class="text-center"><span data-bind="text : $data.daugther_son"></span></td>
                    <td class="text-center"><span data-bind="text : $data.amount"></span> $</td>
                    <td class="text-center"><a href="#" data-bind="click : $root.giveCashtoChild"><span class=" glyphicon glyphicon-send"></span></a></td>
                    <td class="text-center"><a href="<?php echo base_url(); ?>index.php/main/takeAway"><span class=" glyphicon glyphicon-trash"></span></a></td>
                    </tr>
            </tbody>

所以基本上我需要帮助来确定我点击哪个家庭成员并发送该家庭成员orig_id

1 个答案:

答案 0 :(得分:1)

每当您使用click绑定时,knockout会传递当前绑定的dataevent

所以在你的HTML中:

<a href="#" data-bind="click : $root.giveCashtoChild">

它用两个参数调用giveCashToChild。因此,您的giveCashToChild方法应该接受两个参数,其中第一个将是孩子提供现金。

self.giveCashtoChild = function(data, event) {
  var currentChildId = data.orig_id;
  // the other stuff..
};