Use jQuery plugin with Backbone and Requirejs(使用带有 Backbone 和 Requirejs 的 jQuery 插件)
问题描述
我正在使用主干+requirejs+jquery,但在我当前的 html 页面中加载 jquery 插件时遇到问题(确切地说是主干 html 模板).
I'm working with backbone+requirejs+jquery and I have a problem with jquery plugin loading in my current html page (backbone html template precisly).
有我需要的配置:
require.config({
paths: {
// ... some code about backbone config
jquery: '/js/lib/jquery/jquery.min',
'jquery.camera' : '/js/jquery/jquery.camera'
},
shim: {
// ... some code about backbone config
'jquery.camera': ['jquery']
}
});
在我的布局 html 页面中,我有:
In my layout html page I have:
<script type='text/javascript' src='/js/jquery/jquery.camera.js'></script>
在我的模板页面中,我有:
and in my template page I have:
<script type="text/javascript">
jQuery(function() {
jQuery('#test').camera({
...
</script>
最后是我的浏览器消息:
Finally my browser mesg :
Uncaught TypeError: Object [object Object] has no method 'camera'
你有什么想法吗?
同时我还有一个问题,在我们当前的页面中包含一些 js 代码的最佳方式是什么,包括主干、requirejs 等.
In the same time I have another question, what is the best way to include some js code in our current page with backbone,requirejs, etc.
谢谢:)
推荐答案
我解决了类似的问题(Jquery.cookie),但我的问题是 Jquery 正在加载,然后 Jquery.cookie 被包含但已经需要将 JQuery 作为静态资源.
I solved a similar issue (Jquery.cookie) like this, but my problem was that Jquery was being loaded and then Jquery.cookie was being included but require already had JQuery as a Static resource.
像这样我将 Jquery.Cookie 传递给应用程序,它只在我的应用程序范围内插入 jquery.cookie.
So like this I pass Jquery.Cookie to the application and it inserts jquery.cookie in my application scope only.
require.config({
paths: {
'async' : 'libs/async'
,'jquery' : 'libs/jquery'
,'underscore' : 'libs/underscore'
,'backbone' : 'libs/backbone'
,'text' : 'libs/text'
,'jquery.cookie' : 'libs/jquery.cookie' // <-- cookie lives here
}
,shim: {
'jquery': {
exports: '$'
}
,'underscore': {
exports: '_'
}
,'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
,'jquery.cookie': { //<-- cookie depends on Jquery and exports nothing
deps: ['jquery']
}
}
});
然后在我添加的主 App 类中
and then in the main App class I added
require([
'jquery'
,'underscore'
,'backbone'
,'mapApp'
,'jquery.cookie' //<- this is the real trick !!!
],
function ($, _, Backbone, App) {
在此之后我能够找到 jquery cookie.
After this I was able to find jquery cookie.
顺便说一句:如果您使用 Require.js 来获取它,则无需在 html 中导入 JQuery.camera,除非您在 Require.js 范围之外使用它.
BTW: there is no need to import JQuery.camera in your html if you are using Require.js to fetch it, unless you use it outside your Require.js scope.
这篇关于使用带有 Backbone 和 Requirejs 的 jQuery 插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用带有 Backbone 和 Requirejs 的 jQuery 插件
基础教程推荐
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 动态更新多个选择框 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01