Uncaught Error: нет определенного вызова для pnotify
main.js:
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
,
Буду признателен за любую оказанную помощь.
1 ответ
Вы импортировали pnotify, но не объявили переменную для него. + Изменить
function($ , _ , Backbone , Cart ){
в
function($ , _ , Backbone , pnotify, Cart ){
Обратите внимание, что на самом деле не имеет значения, что вы называете переменной, так как вы никогда не будете ее использовать. Строго говоря, вам даже не нужно определять переменную - плагины jQuery просто живут в пространстве имен jQuery, которое вы уже определили - за исключением того, что вы используете enforceDefine = true
, Но если вы удалите это свойство, вы также можете удалить свойство export в конфигурации shim. Просто убедитесь, что все модули "без экспорта" находятся в конце, после последнего модуля, который имеет настоящий экспорт.