Javascript 如何让jquery在angularjs控制器内工作
我已经试着这样做了一段时间,但没有结果。你们能给我指一下正确的方向吗 我为angularjs制作了一个控制器来制作幻灯片动画。这是控制器:Javascript 如何让jquery在angularjs控制器内工作,javascript,jquery,angularjs,angularjs-scope,angular-material,Javascript,Jquery,Angularjs,Angularjs Scope,Angular Material,我已经试着这样做了一段时间,但没有结果。你们能给我指一下正确的方向吗 我为angularjs制作了一个控制器来制作幻灯片动画。这是控制器: angular.module('common').controller('VideoModalController', ['$scope', 'SessionService', 'DateTimeService', function ($scope, SessionService, DateTimeService) { $scope.view = {
angular.module('common').controller('VideoModalController', ['$scope', 'SessionService', 'DateTimeService',
function ($scope, SessionService, DateTimeService) {
$scope.view = {};
// Close the modal
$scope.hideVideos = function () {
$scope.$close();
};
//next slide
$scope.nextSlide = function () {
target = $('ul.triggers li.active').index();
target === lastElem ? target = 0 : target = target+1;
sliderResponse(target);
};
//prev slide
$scope.prevSlide = function () {
target = $('ul.triggers li.active').index();
lastElem = triggers.length-1;
target === 0 ? target = lastElem : target = target-1;
sliderResponse(target);
};
}
]);
我要做的是让jquery在其中工作。我想尽了一切办法都没有结果。以下是我的jquery:
<script type="text/javascript">
var triggers = $('ul.triggers li');
var videos = $('ul.videos li');
var lastElem = triggers.length - 1;
var target;
triggers.first().addClass('active');
videos.hide().first().show();
function sliderResponse(target) {
videos.addClass('hiddenvid').fadeOut(900).eq(target).fadeIn(900).removeClass('hiddenvid');
triggers.removeClass('active').eq(target).addClass('active');
}
triggers.click(function() {
if (!$(this).hasClass('active')) {
target = $(this).index();
sliderResponse(target);
}
});
</script>
var触发器=$('ul.triggers li');
var videos=$('ul.videos li');
var lastElem=triggers.length-1;
var目标;
triggers.first().addClass('active');
videos.hide().first().show();
函数sliderResponse(目标){
videos.addClass('hiddenvid').fadeOut(900).eq(target).fadeIn(900).removeClass('hiddenvid');
触发器.removeClass('active').eq(target).addClass('active');
}
触发器。单击(函数(){
if(!$(this).hasClass('active')){
target=$(this.index();
滑块响应(目标);
}
});
我尝试将jquery放在控制器文件中,并将变量更改为$scope.Somevariable,但仍然没有成功。我唯一能做的就是让ng click正常工作
任何帮助都将不胜感激。谢谢一个真正的答案可能需要更多的信息,但简而言之,不要在angular控制器中使用jQuery。或者更直接地说,不要在控制器内部进行任何dom操作!快速参考:@GeneralCan AngularJS在jQLite中内置了jquery代码,因此jquery代码应该在angular中工作,但如果您想充分使用jquery,则需要将jquery库包含到项目中。DOM操作的正确位置在指令中。你能提供一个Plunker(或类似的东西)作为你想要做什么的演示吗?不管你想用jquery做什么,制作一个javascript/jquery函数(不在angularjs控制器中)。在角度控制器中调用该函数,如
myfunction()嘿,你们太棒了。我只是在读指令。我正在努力学习更多关于它们的知识,以了解它们是如何工作的。@jme11什么是掠夺?我如何在这里发布一个呢?一个真正的答案可能需要更多的信息,但简而言之,不要在角度控制器中使用jQuery。或者更直接地说,不要在控制器内部进行任何dom操作!快速参考:@GeneralCan AngularJS在jQLite中内置了jquery代码,因此jquery代码应该在angular中工作,但如果您想充分使用jquery,则需要将jquery库包含到项目中。DOM操作的正确位置在指令中。你能提供一个Plunker(或类似的东西)作为你想要做什么的演示吗?不管你想用jquery做什么,制作一个javascript/jquery函数(不在angularjs控制器中)。在角度控制器中调用该函数,如myfunction()嘿,你们太棒了。我只是在读指令。我正在努力学习更多关于它们的知识,以了解它们是如何工作的。@jme11什么是掠夺?我怎么在这里发布一个呢?