我有这个功能:
Tickets.prototype.each = function(func) {
_.each(this.getTickets(), func);
};
Tickets.prototype.findWhere = function(key, val) {
this.each(function(ticket) {
if(ticket.get(key) === val) {
console.log(ticket);
return ticket;
}
});
};
然后我在这里调用findWhere:
console.log(this.collection.findWhere('ID', $ticketRow.data('id')));
当我运行它时,.findWhere旁边的console.log打印正确的票证对象..但是我调用它的console.log打印'undefined'。
导致这种情况的原因是什么?
答案 0 :(得分:2)
你可能必须
Tickets.prototype.findWhere = function(key, val) {
var tick;
this.each(function(ticket) {
if(ticket.get(key) === val) {
console.log(ticket);
tick = ticket;
}
});
return tick;
};
答案 1 :(得分:1)
Tickets.prototype.each = function(func) {
$.each(this.getTickets(), func);
};
Tickets.prototype.findWhere = function(key, val) {
var tick;
this.each(function(ticket) {
if(ticket.get(key) === val) {
console.log(ticket);
tick = ticket;
return false; //break out of .each
}
});
return tick;
};
你不能突破_.each
,你只能打破$.each
(如果你使用jquery)。