mirror of
https://github.com/jashkenas/backbone.git
synced 2026-01-20 20:37:59 -05:00
merging in setDomLibrary
This commit is contained in:
19
backbone.js
19
backbone.js
@@ -41,6 +41,25 @@
|
||||
// For Backbone's purposes, jQuery, Zepto, or Ender owns the `$` variable.
|
||||
var $ = root.jQuery || root.Zepto || root.ender || root.$;
|
||||
|
||||
|
||||
// Set the javascript library that will be used for the selector work
|
||||
// (a.k.a. the `$` variable).
|
||||
//
|
||||
// By default Backbone will use: jQuery, Zepto, or Ender; but the `setDomLibrary()`
|
||||
// method let's you inject an alternate javascript library (or a mock
|
||||
// library for testing your views outside of a browser). This is also useful
|
||||
// if you are using a packaging library -- to add support for `require()`
|
||||
// calls in the browser (e.g. ender or browserify). The scoping used to
|
||||
// support `require()`, prevents Backbone from automatically loading the
|
||||
// default javascript library.
|
||||
//
|
||||
// Backbone.setDomLibrary(jQuery)
|
||||
//
|
||||
Backbone.setDomLibrary = function(lib) {
|
||||
$ = lib;
|
||||
};
|
||||
|
||||
|
||||
// Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable
|
||||
// to its previous owner. Returns a reference to this Backbone object.
|
||||
Backbone.noConflict = function() {
|
||||
|
||||
30
test/setdomlibrary.js
Normal file
30
test/setdomlibrary.js
Normal file
@@ -0,0 +1,30 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
// a mock object that looks sufficiently jQuery-ish
|
||||
var myLib = function() {
|
||||
return {
|
||||
attr: function() { return "spam" },
|
||||
html: function() { return "spam" },
|
||||
hasClass: function() { return "spam" }
|
||||
};
|
||||
};
|
||||
|
||||
var viewAttrs = { id: 'test-setdomlibrary', className: 'test-setdomlibrary' }
|
||||
|
||||
module("Backbone.setDomLibrary");
|
||||
|
||||
test('Changing jQuery library to custom library', function() {
|
||||
Backbone.setDomLibrary(myLib);
|
||||
var view = new Backbone.View(viewAttrs);
|
||||
|
||||
ok(view.$el.hasClass('test-setdomlibrary') === 'spam');
|
||||
});
|
||||
|
||||
test('Changing jQuery library back to global jQuery', function() {
|
||||
Backbone.setDomLibrary(jQuery);
|
||||
var view = new Backbone.View(viewAttrs);
|
||||
|
||||
ok(view.$el.hasClass('test-setdomlibrary'));
|
||||
});
|
||||
|
||||
});
|
||||
@@ -21,6 +21,7 @@
|
||||
<script type="text/javascript" src="view.js"></script>
|
||||
<script type="text/javascript" src="sync.js"></script>
|
||||
<script type="text/javascript" src="speed.js"></script>
|
||||
<script type="text/javascript" src="setdomlibrary.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Backbone Test Suite</h1>
|
||||
|
||||
Reference in New Issue
Block a user