簡體   English   中英

在對象Javascript內的另一個方法中調用一個方法時出錯

[英]Error when call a method in another method inside a Object Javascript

我的代碼有一個小問題,我有一個對象,並且我有一個錯誤Paginator.validate不是一個函數 ,我從對象的相同范圍的另一個方法(下面的代碼)中調用了validate()方法感謝您的幫助:D,加油!

function Paginator(res){
    this.total = res['data']['TotalRegistros'];
    this.resPorPagina = res['data']['RegistrosPorPagina'];
    this.pagActual = res['data']['PaginaActual'];
    this.registros = res['data']['Registros'];

    this.paginas = function(){
        return Math.round(this.total/this.resPorPagina);
    }

    this.render = function() {
        var table;
        $.each(this.registros,function(index,element){
            table += '<tr>';
            $.each(element,function(i,e){
                table += '<td>' + Paginator.validate(e) + '</td>';
            })
            table += '</tr>';
        });
        return table;
    }

    this.validate = function(e){
        if(e == null || e == false){e = 'Sin Info';}
        return e;
    }

    this.paginator = function(){
        var b = '';
        for (var i=1;i<=Paginator.paginas();i++) {
            active =  (this.pagActual === i)?'active':'';
            b += '<li class="'+active+'"><a class="btn_paginate" href="#" data-page="'+i+'">'+i+'</a></li>';
        }
        return b;
    }
}
var res = //i get the data from a ajax call in PHP
// object Paginate
var Paginate = new Paginator(res);
// object Paginate
$('#reportsTable tbody').append(Paginate.render());
$('.paginate').find('ul').html(Paginate.paginator());

問題是,上下文this jQuery函數內不會是Paginator 您需要在某個地方創建this的引用。 嘗試:

this.render = function() {
    var table;
    var self = this;
    $.each(this.registros,function(index,element){
        table += '<tr>';
        $.each(element,function(i,e){
            table += '<td>' + self.validate(e) + '</td>';
        })
        table += '</tr>';
    });
    return table;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM