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 相关文章推荐
服务器安全设置的几个注册表设置
Jul 28 Javascript
小型js框架veryide.librar源代码
Mar 05 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
Jun 11 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
Feb 18 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
Oct 21 Javascript
JS简单实现登陆验证附效果图
Nov 19 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
AngularJS+Node.js实现在线聊天室
Aug 28 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
Jul 06 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
Feb 12 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 操作文件的一些FAQ总结
2009/02/12 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
js实现漫天星星效果
2017/01/19 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
Vue计算属性的使用
2017/08/04 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
Python+微信接口实现运维报警
2016/08/27 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
简单了解django索引的相关知识
2019/07/17 Python
python机器学习库xgboost的使用
2020/01/20 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python Celery异步任务队列使用方法解析
2020/08/10 Python
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
护理自我鉴定范文
2013/10/06 职场文书
小学教师事迹材料
2014/01/13 职场文书
物理教学随笔感言
2014/02/22 职场文书
专家推荐信模板
2014/05/09 职场文书
医德医风自我评价
2014/09/19 职场文书
出纳工作检讨书
2014/10/18 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书