如何在 AngularJS 中使用 jQuery

2023-11-24

我正在尝试使用简单的 jQuery UI。我已经包含了所有内容,并且有这个简单的脚本:

<script>
  $(function() {
    $( "#slider" ).slider();
  });
</script>

and

<div id="slider"></div>

我的包括:

<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.4.custom.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/ayaSlider.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-route.min.js"></script>
<script type="text/javascript" src="js/app.js"></script>

但是当我打开页面时没有滑块。根据角度文档:

如果 jQuery 可用,则 angular.element 是 jQuery 的别名 功能。如果 jQuery 不可用,则 angular.element 委托给 Angular 的内置 jQuery 子集。

但是,我不太明白如何使用angular.element并且没有例子。

Update:我设法在屏幕上显示滑块,但它不起作用,我无法更改值或用它做一些事情。

enter image description here


理想情况下,您可以将其放入指令中,但也可以将其放入控制器中。http://jsfiddle.net/tnq86/15/

  angular.module('App', [])
    .controller('AppCtrl', function ($scope) {

      $scope.model = 0;

      $scope.initSlider = function () {
          $(function () {
            // wait till load event fires so all resources are available
              $scope.$slider = $('#slider').slider({
                  slide: $scope.onSlide
              });
          });

          $scope.onSlide = function (e, ui) {
             $scope.model = ui.value;
             $scope.$digest();
          };
      };

      $scope.initSlider();
  });

指导方针:

HTML

<div slider></div>

JS

  angular.module('App', [])
    .directive('slider', function (DataModel) {
      return {
         restrict: 'A',
         scope: true,
         controller: function ($scope, $element, $attrs) {
            $scope.onSlide = function (e, ui) {
              $scope.model = ui.value;
              // or set it on the model
              // DataModel.model = ui.value;
              // add to angular digest cycle
              $scope.$digest();
            };
         },
         link: function (scope, el, attrs) {

            var options = {
              slide: scope.onSlide  
            };

            // set up slider on load
            angular.element(document).ready(function () {
              scope.$slider = $(el).slider(options);
            });
         }
      }
  });

我还建议查看 Angular Bootstrap 的源代码:https://github.com/angular-ui/bootstrap/blob/master/src/tooltip/tooltip.js

您还可以使用工厂来创建指令。这为您提供了极大的灵活性,可以集成围绕它的服务以及您需要的任何依赖项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 AngularJS 中使用 jQuery 的相关文章

随机推荐