【AngularJS: Up & Running】第二章_基本的AngularJS指令及
1 数组的操作与显示(ng-repeat简单使用)ng-repeat使用类似for-each循环 <div ng-repeat="note in ctrl.notes"> <span class="label">{{note.label}}</span> <span class="status" ng-bind="note.done"></span> </div>
angular.module('notesApp',[])
.controller('MainCtrl',[function () {
var self = this;
self.notes = [
{'label': '标签1','done': true},{'label': '标签2','done': false},{'label': '标签3',{'label': '标签4','done': false}
];
}])
2 ng-bind与花括号表达式花括号表达式在第一次加载页面时浏览器会将其转化为ng-bind,在这个短暂时间里,可能会出现{{name}}直接显示在浏览器上的情况。因此推荐使用ng-bind。 3 ng-cloak在AngluarJS启动到加载完毕之间的时间段内隐藏掉界面。 [ng:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{ display:none !important; }
注意:ng-cloak的CSS是angular.js源代码的一部分,如果在HTML的最后才加载AngluarJS库,就晚了。最佳做法:将上面的CSS添加到自己的CSS中,并确保它在HTML显示之前就已经被正确加载。 4 ng-show和ng-hide通过绑定一个布尔型的变量(true:非空字符串、非0数字、非空JS对象),AngularJS就能控制UI显示与否。 5 ng-class用于选择性地从HTML元素中添加或者删除CSS class。 <style> .done { background-color: green; } .pending { background-color: red; } </style>
JS代码: self.getNoteClass = function (status) {
return {
done: status,pending: !status
}
};
HTML代码: <div ng-repeat="note in ctrl.notes" ng-class="ctrl.getNoteClass(note.done)"> <span class="label">{{note.label}}</span> <span class="assignee" ng-show="note.assignee" ng-bind="note.assignee"> </span> </div>
6 ng-repeat拓展6.1 作用于对象上的ng-repeatng-repeat不仅能显示一组HTML元素,还可以显示一个对象的所有属性。 <div ng-repeat="(author,note) in ctrl.notes" ng-class="ctrl.getNoteClass(note.done)"> <span class="label">{{note.label}}</span> <span class="done" ng-bind="note.done"></span> </div>
6.2 ng-repeat中的辅助变量可以用于为HeaderView、FooterView、其他特殊Item设置不同的布局。
6.3 根据ID判断重复性(track by)用于缓存或重用已有的DOM元素。 <div ng-repeat="note in ctrl.notes2 track by note.id"> {{note.$$hashKey}} <span class="label">{{note.label}}</span> <span class="done" ng-bind="note.done"></span> </div>
警告:千万不要在应用中定义$$开头的变量。原因不多说。 6.4 跨HTML元素的ng-repeatAngularJS可以标记ng-repeat的作用范围,从而决定哪些HTML元素是ng-repeat的一部分。标记操作可以通过ng-repeat-start和ng-repeat-end指令进行。 <table> <tr ng-repeat-start="note in ctrl.notes"> <td>{{note.label}}</td> </tr> <tr ng-repeat-end="note in ctrl.notes"> <td>Done:{{note.done}}</td> </tr> </table>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Scala Play中设置DNS查找的TimeToLive
- 基于Bootstrap3制作响应式布局网站(一)
- 关于DevOps“凤凰项目沙盘”的一些思考
- scala – 我们可以使用singleton .type作为类型参数吗?
- scala – “def someFun [_](a:Int)= a”,没有警告也没有错
- Angularjs在指令中得到表单字段有效性
- amazon-web-services – 如何从亚马逊上正在运行的容器创建
- caffe*** Aborted at 1457505270 (unix time) try "dat
- Angular 2 Directive
- Visual Rules规则引擎 + WebService简单的项目案例【连载一