0

我有这个功能:

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 会打印“未定义”。

这可能是什么原因造成的?

4

2 回答 2

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;
};
于 2013-06-17T07:55:45.817 回答
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)。

于 2013-06-17T08:06:07.187 回答