【问题标题】:Why I have to Backbone.$ = require('jquery') in browserify为什么我必须在 browserify 中使用 Backbone.$ = require('jquery')
【发布时间】:2014-06-03 07:29:07
【问题描述】:

我正在阅读this article 并自己练习。

如果我删除 Backbone.$ = $,代码将不起作用。为什么?

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

module.exports = Backbone.View.extend({
  initialize: function(){
    console.log('wuuut')
    this.render();
  },

  render: function(){
    $('body').prepend('<p>wooooooooooooooo</p>');
  }
});

为什么在节点 js 中我必须将 jquery 分配给 Backbone 对象中的成员?

【问题讨论】:

    标签: jquery backbone.js browserify


    【解决方案1】:

    默认情况下,Backbone 有这样的代码:

    // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns
    // the `$` variable.
    Backbone.$ = $;
    

    如果您通过require 加载模块,则$ 对主干不可用,因此您必须手动设置它。如果你不这样做,Backbone.View,它依赖于jQuery 将不起作用。

    【讨论】:

    • Backbone 已经有了这个分配代码,为什么还要手动重新分配?
    • 由于 browserify 包装其模块的方式,$ 在全局上下文中不可用,因此在 browserify 模块内部调用 Backbone.$ = $ 时它不可用。
    猜你喜欢
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多