将数据从子点击传递到CanJS中的父事件回调

时间:2014-05-10 20:17:38

标签: javascript jquery canjs canjs-control

在CanJS控制器中,我在另一个点击处理程序中使用click事件。如何从子处理程序

将一些数据传递给父处理程序
someController=can.Control({
    init:function(element,options){
    //  some code
    },
    '.someButtonSelector click':function(el,ev)
    {
        console.log(this.options.someData) //Returns array of objects
        ev.preventDefault();
        $('#someFormButton').click(function()
        {
            var formData=can.deparam($('someFormSelector').serialize());
            //Want to add formObject in this.options.someData array

        })
    },      
})

我想将formData放入this.options。此处this代表someController的对象,因此我无法在someFormButton点击事件中直接使用它。

还想知道我是否遵循正确的方法?方案是单击someButtonSelector出现的表单。我想将formData放入当前选项对象

1 个答案:

答案 0 :(得分:1)

在另一个处理程序中添加一个单击处理程序,您真正想要做什么?您的代码意味着,只要有人点击#someFormButton,就会在{/ 1}} 时添加新的点击处理程序。如果.someButtonSelector也在Controls元素中,我认为您要执行的操作(在点击#someFormButton时将序列化数据添加到this.options.formData)应该如下所示:

#someFormButton