这是我写的:
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');
}
});
});
**错误:**未捕获的引用错误:$未定义
2条答案
按热度按时间u0njafvf1#
虽然不是100%肯定,但我认为这是一个shim问题,您没有正确地向应用程序公开$
hi3rlvi22#
您需要做的就是删除require jquery中的
(window)
:实际上,使用
var $ = require('jquery')(window)
创建一个包含window
对象的jquery对象,就像你在做下面这样的事情:var $win = $(window)
。那么$win
变量将是用jquery Package 的窗口全局对象,这在某些情况下实际上是有用的。