jquery操作angularjs对象

   这篇文章主要介绍了jquery操作angularjs对象的相关资料,需要的朋友可以参考下

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

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

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

<!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>

  代码


  效果


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

  真没问题吗?请看


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

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

  改下代码

  ?

1
2
3
4
5
6

$('#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实现
});

  再看看


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


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

  再改改

  ?

1
2
3
4
5
6
7

$('#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方便,两者结合...大功告成。

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

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

时间: 2024-11-10 10:26:53

jquery操作angularjs对象的相关文章

JQuery 操作Javascript对象和数组的工具函数小结

JQuery操作非集合数组函数 $.trim(value) 这个函数很简单,从value中删除任何前导或尾随的空白字符.空白字符为任何匹配Javascript正则表达式s的任何字符.包括空格.换页.换行.回车.tab.垂直指标符等. $.each(container, callback) 对container的每一项进行迭代,为每一项调用回调函数callback. container 可以是对象或数组.如果是js对象,则迭代其每个属性;如果是数组,则迭代其每个元素. callback 回调函数.

JQuery 操作Javascript对象和数组的工具函数小结_jquery

JQuery操作非集合数组函数 $.trim(value) 这个函数很简单,从value中删除任何前导或尾随的空白字符.空白字符为任何匹配Javascript正则表达式\s的任何字符.包括空格.换页.换行.回车.tab.垂直指标符等. $.each(container, callback) 对container的每一项进行迭代,为每一项调用回调函数callback. container 可以是对象或数组.如果是js对象,则迭代其每个属性:如果是数组,则迭代其每个元素. callback 回调函数

牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作_jquery

只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作.这就需要我们知道如何将jQuery对象和DOM的相互转换的方法. 1.jQuery对象就是通过jQuery包装DOM对象后产生的对象. 2.jQuery对象和DOM对象的相互转换. 良好的书写风格: 复制代码 代码如下: var $input=$("input") jQuery获取的对象在变量前面加上$. &l

Jquery操作js数组及对象示例代码_jquery

贴一段jQuery对js对象及数组的操作:增删改查的代码. 复制代码 代码如下: var WorkList = new Array();//数组对象 //下面是自己定义的实体 function WorkEx(depart, title, begintime, endtime) {     this.SId = 0;     this.Id = -(WorkList.length+1);     this.DepartmentName = depart;     this.Title = titl

jQuery的deferred对象详解

jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. 这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax.为了实现它,jQuery的全部ajax代码都被改写了.但是,它比较抽象,初学者很难掌握,网上的教程也不多.所以,我把自己的学习笔记整理出来了,希望对大家有用. 本文不是初级教程,针对的读者是那些已经具备

jquery 操作iframe的几种方法

 这篇文章主要是对使用jquery操作iframe的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作   DOM方法: 父窗口操作IFRAME:window.frames["iframeSon"].document IFRAME操作父窗口: window.parent.document   jquery方法: 在父窗口中操作 选中IFRAME中的所有输入框

Jquery操作radio的简单实例

 本篇文章主要介绍了Jquery操作radio的简单实例.需要的朋友可以过来参考下,希望对大家有所帮助 <input name="study" type="radio" value="Jquery插件教程">Jquery插件教程 <input name="study" type="radio" value="Jquery学习">Jquery学习 <input

使用ajax操作 JavaScript 对象_AJAX相关

通过请求获取充分格式化的HTML虽然很方便,但这也意味着必须在传输文本内容的同时也 传输很多HTML标签.有时候,我们希望能够尽量少传输一些数据,然后马上处理这些数据.在 这种情况,我们希望取得能够通过JavaScript进行遍历的数据结构.           使用jQuery的选择符可以遍历和操作取得的HTML结构,但是还有一种JavaScript内置的数据 格式,既能减少数据传输量,也会减少编码量. 1.取得JSON          前面我们曾经看到过,JavaScript对象是由一些"

jquery操作 iframe的方法_jquery

我们先看一下 JQUERY中的对像 contents() 的帮助文件 contents() 概述 查找匹配元素内部所有的子节点(包括文本节点).如果元素是一个iframe,则查找文档内容 示例 描述: 查找所有文本节点并加粗 HTML 复制代码 代码如下: <p>Hello <a href="John">http://ejohn.org/">John</a>, how are you doing?</p> jQuery 复