本文实例讲述了AngularJS实现标签页tab选项卡功能。分享给大家供大家参考,具体如下:
选项卡一:
JavaScript+html+css
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>/libs/angular.js/1.4.6/angular.min.js"></script></head><body><section ng-init="tab=3"> <ul> <li ng-class="{active:tab===1}"> <a href ng-click="tab=1">1111111111</a> </li> <li ng-class="{active:tab===2}"> <a href ng-click="tab=2">2222222222</a> </li> <li ng-class="{active:tab===3}"> <a href ng-click="tab=3">33333333333</a> </li> </ul> <!--是否点击--> {{tab===1}} {{tab===2}} {{tab===3}} <div class="panel" ng-show="tab===1"> <h1>我是1111111111111111111111</h1> </div> <div class="panel" ng-show="tab===2"> <h1>我是22222222222222222</h1> </div> <div class="panel" ng-if="tab===3"> <h1>我是3333333333333333333333</h1> </div></section><script> var app = angular.module("myApp", []); app.controller("myCtrl", function () { });</script></body></html>运行效果(直接在http://tools.jb51.net/code/HtmlJsRun上测试运行):
但ng-show和ng-if是有区别的
第一点区别是,
ng-if 在后面表达式为 true 的时候才创建这个 dom 节点,
ng-show 是初始时就创建了,用display:block 和 display:none 来控制显示和不显示。
第二点区别是,
ng-if 会(隐式地)产生新作用域,ng-switch 、 ng-include 等会动态创建一块界面的也是如此。
这样会导致,在 ng-if 中用基本变量绑定 ng-model,并在外层 div 中把此 model 绑定给另一个显示区域,内层改变时,外层不会同步改变,因为此时已经是两个变量了。
<p>{{name}}</p><div ng-if="true"> <input type="text" ng-model="name"></div>ng-show 不存在此问题,因为它不自带一级作用域。
避免这类问题出现的办法是,始终将页面中的元素绑定到对象的属性(data.x)而不是直接绑定到基本变量(x)上。AngularJS中的作用域
参考:
AngularJS 常见面试问题
优酷视频:AngularJS 入门教程(2.2):学做标签页
更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。