Vue JS-如何在JavaScript的过滤器函数中调用数据

天使

在我们的应用程序中,我为每行添加了一个验证,您不能拥有两个相同的列值。我已经完成了,但是我在删除行中有问题

在此处输入图片说明

单击时在右侧有一个删除按钮,Cannot read property .....即使在数据中已声明它也给我一个错误

错误信息

在此处输入图片说明

代码视图

    deleteRow(i, e){
    var month                   = this.added_items[i].selected_month.id
    var chart_of_account_id     = this.added_items[i].selected_chart_of_account.id
    var count                   = 0 
    // var duplicate                = false 
    this.submitStatus                                       =   ''
    this.duplicate_month                                     =   false
    this.added_items.filter(function( obj ) {
        console.log(this.submitStatus)
        if((obj.selected_month.id == month && obj.selected_chart_of_account.id == chart_of_account_id) && obj.id != i){
             count++
             if(count >= 2)
             {
                // this.added_items[i].duplicate_month                 =   true
                // this.submitStatus                                   =   'ERROR'
                // this.duplicate_month                                =   true
             }
        }
        return obj.id !== i;

    });
   
   console.log(this.added_items)

    e.preventDefault()
},

问题:如何在过滤函数中调用数据?因为当我尝试以下任何一种方法时:this.submitStatus / this.added_items [i] .duplicate_month / this.duplicate_month它给了我一个错误

唐卡纳什

您可以通过两种方式进行处理

选项1:箭头功能

this.added_items.filter(( obj ) => {
    console.log(this.submitStatus)

    if(
        (
            obj.selected_month.id == month && 
            obj.selected_chart_of_account.id == chart_of_account_id
        ) && 
        obj.id != i
    ){
       count++
       if(count >= 2)
       {
           // this.added_items[i].duplicate_month                 =   true
           // this.submitStatus                                   =   'ERROR'
           // this.duplicate_month                                =   true
        }
   }

    return obj.id !== i;

});

选项2:将此绑定

this.added_items.filter(function( obj ) {
    console.log(this.submitStatus)

    if(
        (
            obj.selected_month.id == month && 
            obj.selected_chart_of_account.id == chart_of_account_id
        ) && 
        obj.id != i
    ){
        count++
        
        if(count >= 2)
        {
                // this.added_items[i].duplicate_month                 =   true
                // this.submitStatus                                   =   'ERROR'
                // this.duplicate_month                                =   true
        }
    }

    return obj.id !== i;

}).bind(this);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章