我读过documentation关于支持RequireJs的同位素,但我继承了一个使用RequireJS的网站,它的设置方式稍有不同,我努力想方设法让我的头让同位素和RequireJS一起工作。这是我与RequireJS的第一次接触。在requirejs和jquery中使用同位素
的设置是这样的:
require.config({
paths: {
jquery: 'libs/jquery-1.11.0',
jqueryUI: 'libs/jquery-ui-1.11.1',
datepickerModule: 'modules/datepicker-module',
gridsetModule: 'plugins/gridset-overlay',
waypoints: 'plugins/waypoints',
booking: 'modules/book-widget',
mobileNav: 'modules/mobile-nav'
},
shim: {
'booking': ['waypoints']
}
});
/* -------------------------------------------------------------------------- */
/* ---------- Initialize app ------------------------------------------------ */
/* -------------------------------------------------------------------------- */
require(['jquery', 'jqueryUI', 'base', 'waypoints', 'booking', 'datepickerModule', 'gridsetModule', 'mobileNav'], function($, jqueryUI, base) {
'use strict';
/* ---------- Global modules -------------------------------------------- */
base.init();
});
每一次的功能的新件添加到网站,创建新的自包含的JavaScript文件。在我来说,我需要它采用同位素的布局一个新的模块,所以我创建了一个js文件是这样的:
define(['jquery'], function() {
'use strict';
$('#container').isotope();
});
然后我修改了上面的要求配置,因此它现在看起来是这样的:
require.config({
paths: {
jquery: 'libs/jquery-1.11.0',
jqueryUI: 'libs/jquery-ui-1.11.1',
datepickerModule: 'modules/datepicker-module',
gridsetModule: 'plugins/gridset-overlay',
waypoints: 'plugins/waypoints',
isotope: 'plugins/isotope.pkgd',
booking: 'modules/book-widget',
mobileNav: 'modules/mobile-nav'
},
shim: {
'booking': ['waypoints'],
'isotope': ['jquery']
}
});
/* -------------------------------------------------------------------------- */
/* ---------- Initialize app ------------------------------------------------ */
/* -------------------------------------------------------------------------- */
require(['jquery', 'jqueryUI', 'base', 'waypoints', 'booking', 'datepickerModule', 'gridsetModule', 'mobileNav', 'isotope'], function($, jqueryUI, base) {
'use strict';
/* ---------- Global modules -------------------------------------------- */
base.init();
});
然而,这仍然无法正常工作 - 它只是抛出的网站,由此,我称之为.isotope
返回undefined is not a function
上的异常。
在同位素文档(上面链接),它说我需要引用'jquery.bridget'在要求得到这个工作,但我发现的所有例子都设置了不同的方式,似乎包括直接在RequireJS配置中实例化同位素的函数,而不是设置它准备从我的单独模块脚本中调用它。
任何人都可以建议如何让这个工作?
非常感谢。
您先生,救了我的一天。我拉着我的头发,无法弄清楚它是bridget,在我独立装载后工作。 – CatalinBerta 2015-12-07 22:22:13