无法让砌体与 RequireJS 一起工作
Unable to get Masonry working with RequireJS
我正在尝试使用 RequireJS 将 Masonry 加载到我的应用程序中,但它一直导致 Backbone 在我添加它时吐出"对象不是函数"错误。
编辑:可能与此问题有关。
主.js
require.config({
paths: {
jquery: 'lib/jquery-1.9.1',
underscore: 'lib/underscore-1.5.2',
backbone: 'lib/backbone-1.0.0',
masonry: 'lib/masonry.pkgd'
},
shim: {
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
underscore: {
exports: '_'
}
}
});
require(['app'], function(App){
App.initialize();
});
应用.js
define([
'jquery',
'underscore',
'backbone',
'masonry',
'collections/ideas',
], function($, _, Backbone, Masonry, IdeasCollection) {
var IdeasView = Backbone.View.extend({
el: $('#container'),
initialize: function() {
...
},
render: function(){
...
}
});
return IdeasView;
});
要将Masonry用作RequireJS的jQuery插件,您需要运行jQuery bridget。
检查文档:http://masonry.desandro.com/appendix.html#requirejs
您可以在此处下载bridget:https://github.com/desandro/jquery-bridget
然后你可以包括一个运行桥接,它应该工作正常
define([
'jquery'
, 'underscore'
, 'backbone'
, 'config'
, 'app'
, 'jquery.masonry'
, 'jquery.bridget'
], function ($, _, Backbone, Config, App, Masonry, bridget) {
initialize : function () {
bridget('masonry', Masonry);
}
});
希望对您有所帮助!
这是无需桥接即可运行它的一种方法:
requireJS-config.js:
var config = {
paths: {
"lib-masonry": "Module/js/lib/masonry.pkgd.min"
},
shim: {
"lib-masonry": {
deps: ['jquery', 'jquery/ui']
}
}
}
然后在另一个要使用它的模块中:
define([
'jquery',
'lib-masonry'
], function ($, Masonry) {
$.widget('ModuleNamespace.containerMasonry', {
options: {
},
_create: function() {
var msnry = new Masonry('.grid', {
itemSelector: '.grid__item',
columnWidth: 200
});
// .. code
}
});
return $.ModuleNamespace.containerMasonry;
});
相关文章:
- 如何将jquery ui与requirejs一起使用
- 将RequireJs与自定义JS插件一起使用
- Twitter Bootstrap js文件已加载,但无法与requirejs一起使用
- 将requirejs与Colorbox一起使用:未捕获的类型错误
- 无法让砌体与 RequireJS 一起工作
- 将闭包编译器的类型安全性与AMD(requirejs)结合在一起的最可靠方法是什么?
- jQuery 不能与 RequireJS 一起使用
- 你应该将IIFE与RequireJS一起使用
- AngularJS项目值得与RequireJS一起使用吗
- 如何使requirejs与jasmine和blanketjs一起工作以覆盖代码
- 让AngulaJS + Angular AMD + RequireJS与Karma和Jasmine一起工作时出错
- Yammer和RequireJS——在一起很开心吗?与否
- 让 requirejs 与 Jasmine 一起工作
- 让TypeScript、Karma、RequireJS和Chai一起工作
- 未定义gap与requirejs一起使用时会出现错误
- 将requirejs与node一起使用
- 无法使signalR与requireJS一起工作
- 将 RequireJS 与非 AMD JavaScript 文件一起使用
- 将 RequireJS 与遗留代码一起使用
- 我可以将System.Web.Optimization与AMD的加载程序(如requireJS)一起使用吗?