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 相关文章推荐
JavaScript 编程引入命名空间的方法
Jun 29 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
Feb 03 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
浅析document.ready和window.onload的区别讲解
Dec 18 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
Jul 29 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
js实现产品缩略图效果
Mar 10 Javascript
使用重写url机制实现验证码换一张功能
Aug 01 Javascript
layui实现文件或图片上传记录
Aug 28 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
vue 中的动态传参和query传参操作
Nov 09 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中SimpleXML函数用法分析
2014/11/26 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
php依赖注入知识点详解
2019/09/23 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python中itertools模块用法详解
2014/09/25 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python实现直播推流效果
2019/11/26 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
python中time、datetime模块的使用
2020/12/14 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
10的分与合教学反思
2014/04/30 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
导游词之青岛太清宫
2019/12/13 职场文书