2013-10-01 69 views
2

main.js定義呼叫:未捕獲的錯誤:沒有爲pnotify

requirejs.config({ 
    enforceDefine: true, 
    paths: { 
    "jquery": "libs/jquery/jquery-min", 
    "underscore": "libs/underscore/underscore-min", 
    "backbone": "libs/backbone/backbone-min", 
    "jquery.pnotify":"libs/jquery/jquery.pnotify.min" 

}, 
shim: { 
    "underscore": { 
     deps: [], 
     exports: "_" 
    }, 
    "backbone": { 
     deps: ["jquery", "underscore"], 
     exports: "Backbone" 
    }, 
    "jquery.pnotify" : { 
     deps : ["jquery"], 
     exports : "jQuery.fn.pnotify" 
    } 
    } 
}); 

查看:

define(["jquery" , 
     "underscore" , 
     "backbone" , 
     "jquery.pnotify", 
     "models/CartModel" , 
     ],function($ , _ , Backbone , Cart){ 

var CartView = Backbone.View.extend({ 
    initialize: function() { 
     this.updateQtyLabel("qtyCart"); 
    }, 
    el: '.addToCart-form', 
    events : { 
     "click #addToCart" : "addToCart" 
    }, 
    addToCart : function(){ 
     $.pnotify({ 
      title: 'Go to Cart and Check Out', 
      text: '1 item added to Cart', 
      shadow:false, 
      delay:1000 
     }); 
    }, 
    render: function(){ 

    } 
}); 
return CartView; 
}); 

我得到一個錯誤Uncaught Error: No define call for jquery.pnotify

任何幫助,非常感謝。

+0

你在頁面中包含了'pnotify'插件的javascript嗎? –

+0

@RoryMcCrossan:使用require.js不需要在頁面中包含JavaScript源代碼,對吧? – Nothing

回答

1

你已經導入了pnotify,但是你沒有爲它聲明一個變量。更改

function($ , _ , Backbone , Cart){ 

function($ , _ , Backbone , pnotify, Cart){ 

注意,實際上它並不不管你叫什麼變量,因爲你永遠不會無論如何使用它。嚴格地說,你甚至不需要定義變量 - 除了你使用的是enforceDefine = true之外,jQuery插件只存在於你已經定義的jQuery名稱空間中。但是,如果要刪除該屬性,則也可以在填充配置中刪除導出屬性。只要確保在最後一個具有真正導出的模塊之後,任何「無導出」模塊即將結束。

相關問題