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;
 };

から抜け出すことはできません。(jquery を使用している場合)から抜け出す_.eachことしかできません。$.each

于 2013-06-17T08:06:07.187 に答える