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 操作cookies及正确使用cookies的属性
Oct 15 Javascript
网页整体变灰白色(兼容各浏览器)实例
Apr 21 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
Aug 01 Javascript
Vue.js每天必学之表单控件绑定
Sep 05 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
Sep 05 Javascript
对angularjs框架下controller间的传值方法详解
Oct 08 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
Nov 01 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
vue+canvas实现移动端手写签名
May 21 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
咖啡语言
2021/03/03 咖啡文化
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
拖拉表格的JS函数
2008/11/20 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python 文件与目录操作
2008/12/24 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
详解Python中is和==的区别
2019/03/21 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
python 实现逻辑回归
2020/12/30 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
省级优秀班集体申报材料
2014/05/25 职场文书
大学生工作求职信
2014/06/23 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
Python获取字典中某个key的value
2022/04/13 Python