首页 > 其他分享 >AngularJS jQuery 共存法则

AngularJS jQuery 共存法则

时间:2023-03-29 15:02:50浏览次数:40  
标签:jQuery function 插件 共存 selected jquery AngularJS scope myImg


寻找正确的方法,如何在AngularJS里使用jQuery

一、为什么还是要使用jquery

在使用Angular一段时间后,发现还是很难逃脱jquery 插件的魔掌。尽管对于angular,内置了jQLite.
但是为了更好的实现功能,不可避免的要使用一些jquery的插件。

二、如何在Angular里使用jquery

1. 如果使用jquery的插件,我们不应该把对应的code放到controller里面。我们应该创建directive,然后通常把jquery的code放在 link里面

2. 当我们引入jquery 插件库的时候,我们要保证是在最后倒入的,在angularjs,controllers,services,filters结束后引入

三、实践Plunker

如何在angular里使用jcrop
HTML

<!DOCTYPE html>
<html ng-app="angularjs-starter">

  <head lang="en">
    <meta charset="utf-8">
    <title>Custom Plunker</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
    <script src="//deepliquid.com/projects/Jcrop/js/jquery.min.js"></script>
    <script src="//deepliquid.com/projects/Jcrop/js/jquery.Jcrop.js"></script>
    <link rel="stylesheet" href="style.css">
    <script>
      document.write('<base href="' + document.location + '" />');
    </script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <h1>Hello </h1>
    <button ng-click='img = "http://deepliquid.com/Jcrop/demos/demo_files/pool.jpg"'>Orig</button>
    <button ng-click='img = "http://api.ning.com/files/ZC4177QOYrNFCalnvSMuQhhDHuDSN983R6Cu41iPxpbyxGhX*8BhXoXmBEcGH-zUvSNHnUxlcEJA0BZdf9ch8Q10kP8-BszV/daisy0.jpg"'>Kitten</button>

    <img-cropped src='' selected='selected(cords)'>
  </body>

</html>

 

JS


var app = angular.module('angularjs-starter', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';  
  $scope.selected = function(x) {
    console.log("selected",x);
  };
});

app.directive('imgCropped', function() {
  return {
    restrict: 'E',
    replace: true,
    scope: { src:'@', selected:'&' },
    link: function(scope,element, attr) {
      var myImg;
      var clear = function() {
        if (myImg) {
          myImg.next().remove();
          myImg.remove();
          myImg = undefined;
        }
      };
      scope.$watch('src', function(nv) {        
        clear();
        if (nv) {
          element.after('<img />');
          myImg = element.next();        
          myImg.attr('src',nv);
          $(myImg).Jcrop({
            trackDocument: true,  
            onSelect: function(x) {              
              scope.$apply(function() {
                scope.selected({cords: x});
              });
            }
          });
        }
      });

      scope.$on('$destroy', clear);
    }
  };
});



 

标签:jQuery,function,插件,共存,selected,jquery,AngularJS,scope,myImg
From: https://blog.51cto.com/u_8895844/6157032

相关文章

  • 基于.NET Core + Jquery实现文件断点分片上传
    基于.NETCore+Jquery实现文件断点分片上传前言该项目是基于.NETCore和Jquery实现的文件分片上传,没有经过测试,因为博主没有那么大的文件去测试,目前上传2G左右的文件......
  • struts2 jquery
    使用这个组合,感觉还是很方便灵活的。1、将struts2的json插件加入web工程的lib,jsonplugin的下载地址:http://code.google.com/p/jsonplugin/downloads/......
  • jQuery(学习笔记1.0)
    jQuery是一个JavaScript库。jQuery极大地简化了JavaScript编程jQuery库可以通过一行简单的标记被添加到网页中。jQuery库包含以下特性:HTML元素选取HTML元素操作CSS操作HTML......
  • jQuery多种请求方式
    一、请求方式$.ajax():最常用的发起HTTP请求的方法之一,可以自定义请求头、请求体等参数,支持异步和同步请求。$.ajax({type:"GET",url:"http://example.com/data......
  • jquery二级菜单。显示了jquery的方便
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equ......
  • SpringBoot加Jquery实现ajax传递json字符串并回显消息(已实践)
    场景inspinia前端页面模板+thymeleaf模板+jquery+springboot点击提交将当前选中行的id以json字符串传到后台,后台实现状态更改并刷新表格。实现提交按钮的点击事件://提交按......
  • SpringBoot+jquery实现post提交表单并添加隐藏域属性完成编辑功能
    场景如下页面编辑时:在选择归属机构时会出现树形结构,所以在提交时需要额外提交一些信息,可以在form中使用input的隐藏域进行存值。实现html代码<divclass="modalinmodal"id......
  • 实现ajax的增删改查案例(jquery)
                     ......
  • jQuery - Bootstrap 3 and Youtube in Modal
    1.效果一HTML<ahref="#"class="btnbtn-default"data-toggle="modal"data-target="#videoModal"data-theVideo="http://www.youtube.com/embed/loFtozxZG0s">VIDEO</a......
  • jquery.js升级后,原来的方法报错
    找到了<scriptsrc="http://code.jquery.com/jquery-latest.js"></script>//换成你的jQuery版本<scriptsrc="http://code.jquery.com/jquery-migrate-1.0.0.js"></scri......