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 相关文章推荐
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
jqGrid jQuery 表格插件测试代码
Aug 23 Javascript
生成二维码方法汇总
Dec 26 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
vue 使用ref 让父组件调用子组件的方法
Feb 08 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
vue单文件组件无法获取$refs的问题
Jun 24 Javascript
JavaScript异步操作中串行和并行
Nov 20 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 has encountered an Access Violation
2007/01/15 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
详解JavaScript的变量
2019/04/04 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python文件选择对话框的操作方法
2019/06/27 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
小学科学教学反思
2014/01/26 职场文书
借款担保书范文
2014/05/13 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
实施意见格式范本
2015/06/05 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android