2013-09-26 34 views
0

我正尝试在我的Marionette应用程序中切换Zepto,并试图使用此zepto插件(https://github.com/sudhirj/simply-deferred)支持jquery的缓存。我也使用require.js,至今头被埋使其工作,我仍然得到这个错误:Deferred,Marionette和Zepto

Uncaught TypeError: Object function (selector, context){ 
    return zepto.init(selector, context) 
    } has no method 'Deferred' 

,这就是我需要的js文件的样子:

require.config({ 
    paths: { 
    'backbone': 'lib/backbone', 
    'text': 'lib/text', 
    'underscore': 'lib/underscore', 
    'bootstrap' : 'lib/bootstrap', 
    'marionette' : 'lib/backbone.marionette', 
    'localStorage' : 'lib/backbone.localStorage', 
    'less' : 'lib/less', 
    'Email' : 'models/email', 
    "Emails" : 'collections/emails', 
    "FormView" : 'views/FormView', 
    "EmailsView" : 'views/EmailsView', 
    "EmailView" : 'views/EmailView', 
    "NoEmailView" : 'views/NoEmailView', 
    "FormView" : 'views/FormView', 
    "MyApp" : 'app', 
    "parseEmail" : "parsing/parseEmail", 
    "LabelView" : "views/LabelView", 
    'socketio': '../socket.io/socket.io', 
    "zepto" : 'lib/zepto', 
    "deferred" : 'lib/deferred' 
    }, 
    shim: { 
    'zepto':{ 
     deps: ["deferred"], 
     exports: '$' 
    }, 
    'underscore': { 
     exports: '_' 
    }, 
    'backbone': { 
     deps: ["underscore", "zepto"], 
     exports: 'Backbone' 
    }, 
    'bootstrap' : { 
     deps: ["zepto"] 
    }, 
    'marionette' : { 
     deps : ["backbone", "underscore", "zepto"], 
     exports: 'Marionette' 
    } 
    'socketio': { 
     exports: 'io' 
    }, 
    }, 
}); 

require(

    [ "zepto", 
    "underscore", 
    "backbone", 
    "less", 
    "marionette", 
    "MyApp", 
    "socketio", 
    "deferred", 
    ], 
    function($ , _, Backbone, less, Marionette, MyApp, io, Deferred) { 
    Deferred.installInto($); 

    }); 

我真正坚持在这里,任何帮助将不胜感激

回答

1

我认为推迟应视的Zepto,而不是其他的方式:

shim: { 
    'zepto':{ 
     exports: '$' 
    }, 
    'deferred': { 
     deps: ["zepto"], 
    }, 
0

我觉得'推迟'可能还需要一个出口声明,以下为我工作..

'deferred': { 
    'deps': ['jquery'], 
    'exports': 'Deferred' 
    },