- 浏览: 1477893 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
原理参考
http://segmentfault.com/q/1010000000738004/a-1020000000738812
http://blog.csdn.net/dm_vincent/article/details/38705099
解决参考
http://segmentfault.com/q/1010000002877397
http://blog.51yip.com/jsjquery/1598.html
正常是双向绑定如下
$scope.greeting与ng-model="greeting"
绑定,党model变了,打印的scope的greeting也变了
然而如果引入了ng-include 的子页面
在子页面改了model之后,scope中的数据没有如期改变
需要处罚apply方法使数据改变,apply又存在安全问题,
解决办法如下
外层的为
out.html
内层的为
inner.html
使model的值改变后,手动触发一下apple那个方法,
才能改变scope中的值
分析,
加了
和
http://segmentfault.com/q/1010000000738004/a-1020000000738812
http://blog.csdn.net/dm_vincent/article/details/38705099
解决参考
http://segmentfault.com/q/1010000002877397
http://blog.51yip.com/jsjquery/1598.html
正常是双向绑定如下
<!DOCTYPE html> <html ng-app="myapp"> <head> <meta charset="utf-8"> <title>ng-model directive</title> </head> <body ng-controller="HelloController"> <script src="angular.min.js"></script> <script> var app=angular.module("myapp",[]); app.controller("HelloController",function($rootScope,$scope) { $scope.greeting="haoning"; $scope.consoleng = function() { console.log($scope.greeting) ; } }); </script> <div> <p>bbbbbbbbb</p> <input id="thism" ng-model="greeting" > <p>Hello {{greeting || "World"}}</p> <button ng-click="consoleng()" >dayin</button> <button ng-click="cha()">cha</button> <hr> </div> </body> </html>
$scope.greeting与ng-model="greeting"
绑定,党model变了,打印的scope的greeting也变了
然而如果引入了ng-include 的子页面
在子页面改了model之后,scope中的数据没有如期改变
需要处罚apply方法使数据改变,apply又存在安全问题,
解决办法如下
外层的为
out.html
<!DOCTYPE html> <html ng-app="myapp"> <head> <meta charset="utf-8"> <title>ng-model directive</title> </head> <body ng-controller="HelloController"> <script src="angular.min.js"></script> <script> var app=angular.module("myapp",[]); app.controller("HelloController",function($rootScope,$scope) { $scope.safeApply = function(fn) { var phase = this.$root.$$phase; if (phase == '$apply' || phase == '$digest') { if (fn && (typeof(fn) === 'function')) { fn(); } } else { this.$apply(fn); } }; $scope.greeting="haoning"; $scope.consoleng = function() { console.log($scope.greeting) ; } $rootScope.cha = function() { console.log("cha"); $scope.safeApply(function () { $scope.greeting = document.getElementById("thism").value; }); } }); </script> <div ng-include="'inner.html'" class="sidebar sidebar-right"></div> </body> </html>
内层的为
inner.html
<div> <p>bbbbbbbbb</p> <input id="thism" ng-model="greeting" > <p>Hello {{greeting || "World"}}</p> <button ng-click="consoleng()" >dayin</button> <button ng-click="cha()">cha</button> <hr> </div>
使model的值改变后,手动触发一下apple那个方法,
才能改变scope中的值
分析,
加了
$scope.safeApply = function(fn) { var phase = this.$root.$$phase; if (phase == '$apply' || phase == '$digest') { if (fn && (typeof(fn) === 'function')) { fn(); } } else { this.$apply(fn); } };
和
$rootScope.cha = function() { console.log("cha"); $scope.safeApply(function () { $scope.greeting = document.getElementById("thism").value; }); }
发表评论
-
indexedDB存图片减少请求
2020-05-21 19:23 557getImageFile()获取网络图片 showImage ... -
vizceral-example的例子
2020-03-19 18:53 355自定义图和加载结构 代码在 https://github.c ... -
jsonpath的helloworld
2020-03-17 14:58 411基本语法:https://www.cnblogs.com/jp ... -
流动图神器vizceral
2019-10-12 19:04 510把c的代码生成json:https://github.com/ ... -
emscripten asm.js的helloworld
2018-03-01 20:15 1112mac下安装: brew install SDL2 SDL2_ ... -
websocket上传文件
2016-12-15 13:30 4480nginx的上传 查看http://haoningabc.it ... -
webpack的helloworld
2016-11-02 10:42 914参考 http://www.jianshu.com/p/42e ... -
iphone6等移动端的css自适应
2016-10-17 01:18 1214参考 http://jingyan.baidu.com/art ... -
javascript自定义事件
2016-06-01 21:49 554一言不合上代码 <input value=" ... -
html5的fiesystem api 浏览器本地存储
2016-06-01 15:59 922html5的fiesystem api可以存取本地文件 一言不 ... -
angular指令菜单的例子
2015-12-31 15:24 1160ng.html 改好点可以改成权限菜单的例子, <h ... -
websocket传传图片
2015-12-25 17:51 7246参考[url]http://www.adobe.com/dev ... -
html5 陀螺仪
2014-11-26 21:05 5875<html> <head> ... -
webgl的贝塞尔曲线
2014-11-12 00:56 2535BezierCurve webgl的贝塞尔曲线 webgl ... -
chrome app的helloworld
2014-11-11 13:56 717参考 http://blog.csdn.net/rydiy/a ... -
shader and Program编程基本概念 - 转
2014-11-04 11:50 1538原地址:http://blog.csdn.net/myarro ... -
javascript对象转json
2014-10-17 14:09 1010<html> <head>& ... -
jquery 的svg中国地图
2012-12-16 14:37 28099三种吧 1.d3.js很强大 2.jquery的 jvecto ... -
纯css的树型结构
2012-10-03 18:29 1283<html><head> ... -
D3 的3d图
2012-09-16 17:05 1458LCF http://mathworld.wolfram. ...
相关推荐
在AngularJS中,双向绑定通过ng-model指令来实现。 ng-controller指令用于定义应用中的控制器,它是AngularJS中将数据模型绑定到视图的主要方法。控制器负责管理应用的数据和视图之间的交互。在控制器内部,可以...
使用ng—include处理多个UI区域183 不支持嵌套路由184 65路由相关的模式及技巧185 处理链接185 创建可点击的链接186 兼容HTML5及hashbang模式186 链接外部页面187 组织路由定义187 将路由定义分离到多个模块...
3. 表单验证:AngularJS提供了表单验证机制,ng-model可以用来进行双向数据绑定,并在表单提交时自动进行数据验证。例如,输入字段可以使用ng-minlength和ng-maxlength来限制最小和最大长度,使用ng-required来标记...
在JavaScript的AngularJS框架中,作用域(Scope)和数据绑定是两个核心概念,它们极大地简化了前端开发的复杂性,特别是对于构建大型单页面应用(SPA)来说。AngularJS由Google发起,作为一款轻量级的MVC框架,它...
通过以上内容可以看出,AngularJS提供了一整套完整的解决方案,包括丰富的指令、验证属性和强大的API,能够极大地简化Web应用的开发过程。这些功能不仅可以提高开发效率,还能帮助开发者创建更加健壮和可维护的应用...
ng-model是实现数据双向绑定的关键指令,它广泛应用于表单元素,如输入框、选择框等,使得处理用户交互变得非常方便。 ng-repeat指令是AngularJS中的一个用于循环数据的指令,它能够根据提供的数组或对象集合重复...
AngularJS的核心特性之一是双向数据绑定,它使得视图和模型之间的数据同步变得简单。在这里,我们将创建一个控制器,用来管理省份、城市、区县的数据,并将这些数据绑定到视图中的选择器。 **二、项目结构** 1. **...
在处理基本数据类型时,AngularJS不会进行双向数据绑定,而是在子Scope创建了一个新的局部变量,导致父Scope中同名属性并不会被更新。这一点是很多初学者在使用AngularJS时遇到的陷阱,尤其是在使用ng-repeat、ng-...
这在处理双向数据绑定时尤其需要注意,因为AngularJS的双向数据绑定是基于作用域的属性变化监听机制,而不是直接修改原型链。 对于原始类型的属性(如number、string、boolean等),它们不能直接在原型链上进行修改...
AngularJS 的核心特性之一是双向数据绑定,它允许视图(View)和模型(Model)之间的数据自动同步。在示例中,`ng-model` 指令被用来将输入框的值与 `$scope` 中的属性关联,例如 `ng-model="student.firstName"` ...
在AngularJS中,我们可以使用`ng-model`来双向绑定数据,`ng-change`来监听下拉列表的选择变化,以及`ng-options`来渲染下拉列表的选项。假设我们有一个JSON对象,包含所有省份、城市和区县的数据,我们可以这样构建...
在学习这个项目时,你将了解如何设置AngularJS环境,如何组织应用结构,以及如何通过控制器和视图实现数据的双向绑定。此外,你还将掌握如何使用AngularJS的服务进行数据管理,以及如何创建和使用自定义指令来增强...
3. `scope`定义了指令的作用域,`treeData: '='`表示`treeData`属性是双向绑定的,允许外部数据与指令内部共享;`canChecked: '=', textField: '@', itemClicked: '&', itemCheckedChanged: '&'`分别用于处理是否...
它是AngularJs表单验证的基础,因为任何的输入元素通过ng-model与应用的数据模型绑定后,AngularJs就能自动检测输入的变化,并同步更新。 2. **ng-minlength** 和 **ng-maxlength**:这两个指令用于设置输入字段的...
在`scope`中,我们使用`=`来定义`treeData`属性,这意味着它将与父作用域中的同名属性建立双向数据绑定。此外,我们还定义了一个`controller`,其中的`isLeaf`方法检查一个节点是否为叶子节点(即没有子节点),`...
AngularJS的双向数据绑定功能可以用来在页面间共享信息,例如在示例中,通过AngularJS的`ng-model`指令可以将输入框中的数据绑定到变量`yourName`上。然后在子页面中,可以使用AngularJS的插值表达式`{{yourName||'...