jquery操作angularjs对象


Posted in Javascript onJune 26, 2015

jquery是一个非常强大的js框架,angularjs是一个非常牛的前端mvc框架。虽然用其中的任何一个框架在项目中够用了,但是有时候这两个框架需要混合着用,虽然不推荐。但有时候混合用时,却非常方便,不要考虑那么多,只要能实现功能,何乐而不为?

最近做的一个产品,前端用angularjs,但表格框架用的却是jquery.datatables.js,当然其中少不了碰到jquery与angularjs交互问题。由于公司保密,我就不用真实项目演示了,写个小demo吧,当然真实的项目要复杂得多。

<!DOCTYPE html>
<html ng-app="ngDemo">
<head>
  <title></title>
  <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  <script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
  <script type="text/javascript">
  $(function() {
    $('#btn').on('click',function(e) {
      $('#dv2').text(Number($('#dv2').text())+1);//jquery+angular实现
      $('#dv3').text(Number($('#dv3').text())+1);//纯jquery实现
    });
  });
  
  var app=angular.module('ngDemo',[]);
  app.controller('ngCtrl',['$scope',function ($scope) {
    $scope.test1=0;
    $scope.test2=0;
  }]);
  </script>
</head>
<body ng-controller="ngCtrl">
test1:<div id="dv1">{{test1}}</div><!--纯angular实现-->
test2:<div id="dv2" ng-bind="test2" ng-model="test2"></div>
test3:<div id="dv3">0</div>
<button id="btn" ng-click="test1=test1+1">click me +1</button>
</body>
</html>

代码

jquery操作angularjs对象

效果

jquery操作angularjs对象

点了两次,这三个值都加到2了,貌似没什么问题。

真没问题吗?请看

jquery操作angularjs对象

视图上是2,model上还是0,没有实现同步,怎么办?

那么问题又来了,jquery和angularjs哪家强呢?

改下代码

$('#btn').on('click',function(e) {
      var scope=angular.element('#dv2').scope();//jquery+angular实现
      scope.test2=scope.test2+1;//直接修改test2的值
      console.log(scope.test2);
      $('#dv3').text(Number($('#dv3').text())+1);//纯jquery实现
    });

再看看

jquery操作angularjs对象

点了两次,中间那个变成了1,其它两个是2。

jquery操作angularjs对象

点了3次,中间那个变成了2,但是scope.test2的值却是什么,它怎么总是显示慢一拍?

再改改

$('#btn').on('click',function(e) {
      var scope=angular.element('#dv2').scope();//jquery+angular实现
      scope.test2=scope.test2+1;//直接修改test2的值
      scope.$apply();//绑定到视图
      console.log(scope.test2);
      $('#dv3').text(Number($('#dv3').text())+1);//纯jquery实现
    });

再看看

jquery操作angularjs对象

这下这三个都同步了。中药好,西药快,中本结合!jquery简单,angularjs方便,两者结合...大功告成。

注意:scope对象一定要调用$apply(),否则会出现视图与model不同步。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
纯JavaScript实现的分页插件实例
Jul 14 Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 Javascript
详解javascript事件冒泡
Jan 09 Javascript
Google 地图类型详解及示例代码
Aug 06 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
Dec 17 Javascript
Javascript操作select控件代码实例
Feb 14 Javascript
关于angular浏览器兼容性问题的解决方案
Jul 26 Javascript
jQuery检查事件是否触发的方法
Jun 26 #Javascript
js限制input标签中只能输入中文
Jun 26 #Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 #Javascript
浅谈JavaScript异常处理语句
Jun 26 #Javascript
javascript实现一个数值加法函数
Jun 26 #Javascript
javascript排序函数实现数字排序
Jun 26 #Javascript
javascript实现给定半径求出圆的面积
Jun 26 #Javascript
You might like
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
PHP概率计算函数汇总
2015/09/13 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
JavaScript中的事件处理
2008/01/16 Javascript
犀利的js 函数集合
2009/06/11 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
基于js文件加载优化(详解)
2018/01/03 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python魔法方法-自定义序列详解
2016/07/21 Python
Python运行DLL文件的方法
2020/01/17 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
物流专业求职计划书
2014/01/10 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
班级旅游计划书
2014/05/03 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
伏羲庙导游词
2015/02/09 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
解决 redis 无法远程连接
2022/05/15 Redis
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL