2013-10-01 11 views
2

main.js에 대한 호출을 정의하지 :catch되지 않은 오류 : 없음 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' 플러그인을위한 자바 스크립트가 포함되어 있습니까? –

+0

@RoryMcCrossan : require.js를 사용하면 페이지에 javascript 소스를 포함 할 필요가 없습니다. – Nothing

답변

1

pnotify를 가져 왔지만 변수를 선언하지 않았습니다. 당신이 어쨌든 그것을 사용하지 않을 것이기 때문에 당신이 변수를 부르는 실제로 문제가되지 않는다는 것을

function($ , _ , Backbone , Cart){ 

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

에주의를 변경합니다. 엄밀히 말하면, 변수를 정의 할 필요조차 없습니다 - jQuery 플러그인은 enforceDefine = true을 사용하고 있다는 것을 제외하면 이미 정의한 jQuery 네임 스페이스에 있습니다. 그러나 해당 속성을 제거하려는 경우 shim 구성의 내보내기 속성도 제거 할 수 있습니다. 진정한 수출이있는 마지막 모듈 다음에 "수출이 적은"모듈이 끝에 있는지 확인하십시오.

관련 문제