<div class="header"> <ul id="headerul"> <li ng-repeat="list in $headList" ng-style="checkByHref(list.href)" ng-if="list.href"> <a ng-href="{{list.href}}" ng-bind="list.text"></a></li> </ul>
</div>
$scope.checkByHref = function (href) {
if (window.location.pathname.indexOf(href) != -1) return {background: '#2b73b5'};
};
项目中遇到这样一段代码,找了好久没找到循环的范围。网上查了一下,这个叫AngularJS,语法和JSP比较像。
ng-repeat指令生命在需要循环内容的元素上,lists的变量名需要和从controller的变量名相同,list是为遍历数组中的每个对象取的别名。
ng-style 指令为 HTML 元素添加 style 属性。ng-style 属性值必须是对象,表达式返回的也是对象。对象由 CSS 属性和值注册,即 key=>value 对。
ng-if 如果ng-if中的表达式为false,则对应的元素整个会从DOM中移除而非隐藏,但审查元素时你可以看到表达式变成注释了。
如果相进行隐藏,可以使用ng-hide。
<div ng-if="1+1===3"> 无法审查到该元素 </div> <div ng-hide="1+1==2"> 可审查 </div>
ng-show/ng-hide 根据表达式显示/隐藏HTML元素,注意是隐藏,不是从DOM移除:
<div ng-show="1+1 == 2"> 1+1=2 </div> <div ng-hide="1+1 == 3"> you can't see me. </div>
ng-model 将表单控件和当前作用域的属性进行绑定。
<div data-ng-app="" data-ng-init="quantity=1;price=5"> 数量: <input type="number" ng-model="quantity"> 价格: <input type="number" ng-model="price"> <p><b>总价:</b> {{quantity * price}}</p> </div>
$index可以返回当前 引用对象的序号,从0开始,另外还有$first、$middle、$last可以返回布尔值,用于告诉你当前元素是否是集合中的第一个中间的最后一个元素。