时间:2021-05-28
本文实例讲述了AngularJS中的DOM操作用法。分享给大家供大家参考,具体如下:
在angular中使用第三方插件时最好都封装到指令(directives)中去,DOM操作也最好都解构到指令中。
避免使用 jQuery 来操作 DOM,包括增加元素节点,移除元素节点,获取元素内容,隐藏或显示元素。你应该使用 directives 来实现这些动作,有必要的话你还要编写自己的 directives。
如果你感到很难改变习惯,那么考虑从你的网页中移除 jQuery 吧。真的,AngularJS 中的 $http 服务非常强大,基本可以替代 jQuery 的 ajax 函数,而且 AngularJS 内嵌了 jQLite —— 它内部实现的一个 jQuery 子集,包含了常用的 jQuery DOM 操作方法,事件绑定等等。但这并不是说用了AngularJS 就不能用 jQuery 了。如果你的网页有载入 jQuery 那么 AngularJS 会优先采用你的 jQuery,否则它会 fall back 到 jQLite。
需要自己编写 directives 的情况通常是当你使用了第三方的 jQuery 插件。因为插件在 AngularJS 之外对表单值进行更改,并不能即时反应到 Model 中。例如我们用得比较多的 jQueryUI datepicker 插件,当你选中一个日期后,插件会将日期字符串填到 input 输入框中。View 改变了,却并没有更新 Model,因为 $('.datepicker').datepicker(); 这段代码不属于 AngularJS 的管理范围。我们需要编写一个directive 来让 DOM 的改变即时更新到 Model 里。
var directives = angular.module('directives', []);directives.directive('datepicker', function() { return function(scope, element, attrs) { element.datepicker({ inline: true, dateFormat: 'dd.mm.yy', onSelect: function(dateText) { var modelPath = $(this).attr('ng-model'); putObject(modelPath, scope, dateText); scope.$apply(); } }); }});然后在 HTML 中引入这个 direcitve
<input type="text" datepicker ng-model="myObject.myDateValue" />说白了 directive 就是在 HTML 里写自定义的标签属性,达到插件的作用。这种声明式的语法扩展了 HTML。
需要说明的是,有一个 AngularUI 项目提供了大量的 directive 给我们使用,包括 Bootstrap 框架中的插件以及基于 jQuery 的其他很热门的 UI 组件。还有http:// 社区贡献的ngshowcase。 AngularJS 的社区很活跃,生态系统健全。
希望本文所述对大家AngularJS程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了javascript删除元素节点removeChild()用法。分享给大家供大家参考。具体分析如下:操作DOM节点的方法:removeChild(
本文实例讲述了AngularJS模块化操作用法。分享给大家供大家参考,具体如下:在前面几节教程中,代码比较少,为了方便说明问题笔者將控制器代码都写在了HTML页
什么是scope AngularJS中,作用域是一个指向应用模型的对象,它是表达式的执行环境。作用域有层次结构,这个层次和相应的DOM几乎是一样的。作用域能监
最近在做AngularJS项目,这是写的一个60秒倒计时,angularjs与jq不同,不是使用dom节点操作,而是数据操作,写倒计时,最好是使用$timeou
本文实例讲述了JQuery中DOM事件绑定用法。分享给大家供大家参考。具体分析如下:在文档加载完成后,如果打算为元素绑定事件来完成某些操作,则可以使用bind(