使用带有backbone和jquery

时间:2015-10-30 08:07:11

标签: jquery backbone.js browserify

这就是我写的:

var underscore = require('underscore');
var $ = require('jquery')(window);
var Backbone = require('backbone');
Backbone.$ = $;

然后执行此命令browserify app.js -o bundle.js

当我运行应用程序时,我在chrome控制台中收到以下错误:

应用代码:

//Define The Model

    $(function () {
        var Shape = Backbone.Model.extend({
            defaults: {x: 40, y: 40, width: 100, height: 100, color: 'brown'},
            setTopLeft: function (x, y) {
                this.set({x: x, y: y});
            },
            setDim: function (w, h) {
                this.set({width: w, height: h});
            },
            isCircle: function () {
                return !!this.get('circle');
            }
        });
      });

错误:未捕获的ReferenceError:$未定义

2 个答案:

答案 0 :(得分:0)

不是100%肯定,但我认为这是一个垫片问题,你没有正确地将$暴露给你的应用

答案 1 :(得分:0)

您需要做的就是删除require jquery中的var $ = require('jquery');

var $ = require('jquery')(window)

基本上,使用window创建一个包含var $win = $(window)对象的jquery对象。就像你做这样的事情一样:$win。然后{{1}}变量将是用jquery包装的窗口全局对象,这在某些场景中实际上是有用的。

在评论中首先注意到Spike的错误,但是我已经测试了它并将其作为答案发布。