这就是我写的:
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:$未定义
答案 0 :(得分:0)
不是100%肯定,但我认为这是一个垫片问题,你没有正确地将$暴露给你的应用
答案 1 :(得分:0)
您需要做的就是删除require jquery中的var $ = require('jquery');
:
var $ = require('jquery')(window)
基本上,使用window
创建一个包含var $win = $(window)
对象的jquery对象。就像你做这样的事情一样:$win
。然后{{1}}变量将是用jquery包装的窗口全局对象,这在某些场景中实际上是有用的。
在评论中首先注意到Spike的错误,但是我已经测试了它并将其作为答案发布。