0

defer()在同一个主干视图中的两个地方使用,以运行两个不同的功能。但是,两者都会导致以下错误:

两个函数调用位于渲染函数中:

loadReferralCollection: function(collection) {
        console.log("hello")
},

loadRemixedCollection: function(collection) {
        console.log("hello")
},

render: function() {
        var self = this;
        if ( this.options.params !== undefined && this.options.params.referral !== undefined ){
              _( self.loadReferralCollection(self.model) ).defer();
        } else if ( this.options.params !== undefined && this.options.params.remix !== undefined ) {
              _( self.loadRemixedCollection(self.model) ).defer();
        }
}

完整错误:

Uncaught TypeError: Cannot call method 'apply' of undefined underscore.js?body=1:621
(anonymous function)
4

1 回答 1

2

defer() 想要推迟一个函数调用。所以你必须传递一个函数:

任何一个:

_( function() { self.loadRemixedCollection(self.model); } ).defer();

或者

_( self.loadRemixedCollection ).defer(self.model);

好吧,或者

_.defer( function() { self.loadRemixedCollection(self.model); } )
_.defer( self.loadRemixedCollection, self.model )
于 2013-09-12T18:19:20.230 回答