[英]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.