Rah*_*put 8 javascript jquery-ui amd requirejs jasmine
在我的代码中,test.js依赖于jquery-ui,它不使用需要AMD模式和test.spec.js依赖于jquery-ui,test.js使用AMD模式.我们可以在运行test.spec.js时动态加载jquery-ui在test.js中的依赖关系.
require.config({
baseUrl: '/demo',
paths: {
'jquery': '../library/jquery-1.11.1',
'jquery-ui': '../library/jquery-ui-1.11.4'
},
shim: {
'jquery': {
exports: 'jQuery'
},
'jquery-ui': {
deps: ['jquery']
},
'library/src/js/test': {
deps: ['library/jquery-1.11.1', 'library/jquery-ui-1.11.4', '../js/collapse'],
exports: 'Test'
}
},
callback: window.__karma__.start
});
Run Code Online (Sandbox Code Playgroud)
在test.js中写入了jquery-ui draggable事件的"draggable".在评估$('#panelId').draggable({revert: true});
得到错误后
"TypeError:'undefined'不是函数(评估'$('#panelId').draggable({revert:true})')"
如何在require.config中为test.js加载jquery-ui.因为我用它来运行我的茉莉花测试用例.在真实环境中,它按预期工作,但在jasmine测试用例中无法找到jquery-ui事件.test.js不使用require.js,但test.spec.js使用require AMD模式.
在test.spec.js代码执行后得到jquery-ui draggable undefined的错误
define(['jquery-ui','library/src/js/test'], function ($) {
});
Run Code Online (Sandbox Code Playgroud)
我能够使用$访问test.spec.js中的jquery ui,而不是在test.js中,其中jquery-ui事件被写为test.js不使用AMD require模式.不知道遗失了什么.任何帮助将被appriciated ... :)
尝试这个更新的 require js 配置
使用“library/src/js/test”加载您的测试
require.config({
baseUrl: '/demo',
paths: {
'jquery': '../library/jquery-1.11.1', // assuming this is a correct path
'jquery-ui': '../library/jquery-ui-1.11.4' // assuming this is a correct path
},
shim: {
'jquery': {
exports: 'jQuery'
},
'jquery-ui': {
deps: ['jquery']
},
'library/src/js/test': {
deps: ['jquery', 'jquery-ui', '../js/collapse'], // changes done here
exports: 'Test'
}
},
callback: window.__karma__.start
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |