Angularjs+;带有Karma和Jasmine的Jquery Draggables测试问题
我有一个angular应用程序,需要一点jquery来完成复杂的ui拖放操作。为此,我使用jQueryUIDragables 它们工作得很好,但是我不知道如何将karma/jasmine单元测试应用到控制器上 我的所有其他控制器都经过测试,没有出现问题,但是这个包含jQuery的特定控制器正是给我带来问题的控制器 我正在接受这个业力错误:Angularjs+;带有Karma和Jasmine的Jquery Draggables测试问题,angularjs,jasmine,karma-runner,Angularjs,Jasmine,Karma Runner,我有一个angular应用程序,需要一点jquery来完成复杂的ui拖放操作。为此,我使用jQueryUIDragables 它们工作得很好,但是我不知道如何将karma/jasmine单元测试应用到控制器上 我的所有其他控制器都经过测试,没有出现问题,但是这个包含jQuery的特定控制器正是给我带来问题的控制器 我正在接受这个业力错误: INFO [karma]: Karma v0.10.9 server started at http://localhost:9876/ INFO [laun
INFO [karma]: Karma v0.10.9 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Mac OS X)]: Connected on socket c8iF8rN90zbXSoEYRJzC
PhantomJS 1.9.7 (Mac OS X) ERROR
ReferenceError: Can't find variable: $
我听说最好将jQuery位移动到指令。你能给我介绍一下这个箱子吗
我正在控制器内以这种方式创建选项卡。目前UI运行良好,但正如我所说的,它是不可测试的
$scope.addSortables = function (){
//ordering locations
$(".dummy-widget .days-container .locations").sortable({
"stop" : function (ui, event){
refreshLocations(ui, event);
PreviewManager.enableTabs();
}
});
}
非常感谢Angular使用jQuery而不是jQuery,但是如果您在加载Angular之前加载jQuery,它会很高兴地使用jQuery。一旦您这样做了,您就不需要依赖全局$
,angular.element
将成为您的首选元素
那么,您是否记得在Karma配置中加载jQuery?它应该如下所示:
// in karma config
files: [
'vendor/jquery/dist/jquery.js',
'vendor/angular/**/*.js',
'src/app/**/*.js',
'spec/**/*.spec.js'
],
另一件事是,您应该尽量避免在控制器中直接进行DOM操作;改用指令。关于编写角度指令有一个很好的教程
希望这能有所帮助。Angular使用jQuery而不是jQuery,但如果您在加载Angular之前加载它,它会很高兴地使用jQuery。一旦您这样做了,您就不需要依赖全局$
,angular.element
将成为您的首选元素
那么,您是否记得在Karma配置中加载jQuery?它应该如下所示:
// in karma config
files: [
'vendor/jquery/dist/jquery.js',
'vendor/angular/**/*.js',
'src/app/**/*.js',
'spec/**/*.spec.js'
],
另一件事是,您应该尽量避免在控制器中直接进行DOM操作;改用指令。关于编写角度指令有一个很好的教程
希望这能有所帮助。Angular使用jQuery而不是jQuery,但如果您在加载Angular之前加载它,它会很高兴地使用jQuery。一旦您这样做了,您就不需要依赖全局$
,angular.element
将成为您的首选元素
那么,您是否记得在Karma配置中加载jQuery?它应该如下所示:
// in karma config
files: [
'vendor/jquery/dist/jquery.js',
'vendor/angular/**/*.js',
'src/app/**/*.js',
'spec/**/*.spec.js'
],
另一件事是,您应该尽量避免在控制器中直接进行DOM操作;改用指令。关于编写角度指令有一个很好的教程
希望这能有所帮助。Angular使用jQuery而不是jQuery,但如果您在加载Angular之前加载它,它会很高兴地使用jQuery。一旦您这样做了,您就不需要依赖全局$
,angular.element
将成为您的首选元素
那么,您是否记得在Karma配置中加载jQuery?它应该如下所示:
// in karma config
files: [
'vendor/jquery/dist/jquery.js',
'vendor/angular/**/*.js',
'src/app/**/*.js',
'spec/**/*.spec.js'
],
另一件事是,您应该尽量避免在控制器中直接进行DOM操作;改用指令。关于编写角度指令有一个很好的教程
希望这有帮助