【问题标题】:Uncaught Error: No define call for pnotify未捕获的错误:没有定义 pnotify 调用
【发布时间】:2013-10-01 10:30:03
【问题描述】:

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

非常感谢任何帮助。

【问题讨论】:

  • 您的页面中是否包含pnotify 插件的javascript?
  • @RoryMcCrossan : 使用 require.js 不需要在页面中包含 javascript 源代码,对吧?

标签: javascript jquery backbone.js pnotify


【解决方案1】:

你已经导入了 pnotify,但是你没有为它声明一个变量。改变

function($ , _ , Backbone , Cart ){

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

请注意,实际上调用变量的名称并不重要,因为无论如何您都不会使用它。严格来说,你甚至不需要定义变量——jQuery 插件只存在于你已经定义的 jQuery 命名空间中——除了你使用的是enforceDefine = true。但是,如果您要删除该属性,您也可以删除 shim 配置中的 exports 属性。只需确保所有“无导出”模块都位于最后一个具有真正导出功能的模块之后。

【讨论】:

    猜你喜欢
    • 2019-10-25
    • 2021-05-22
    • 2018-09-22
    • 1970-01-01
    • 2013-10-27
    • 2017-07-25
    • 2019-04-02
    • 2016-04-09
    • 2020-04-29
    相关资源
    最近更新 更多