Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让jquery在angularjs控制器内工作_Javascript_Jquery_Angularjs_Angularjs Scope_Angular Material - Fatal编程技术网

Javascript 如何让jquery在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 = {

我已经试着这样做了一段时间,但没有结果。你们能给我指一下正确的方向吗

我为angularjs制作了一个控制器来制作幻灯片动画。这是控制器:

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()myfunction()