发表于: 2017-01-17 01:01:01

1 1312


1.今天完成的事:
   完成新闻列表页面,定制详情页面,定制列表页面的重写。
2. 明天的计划:
   完成代码重构。
3. 遇到的困难:

1. 数组中有两个以上的重复字符或数字<div ng-repeat="links in slides"> 

   <div ng-repeat="link in links track by $index">{{link.name}}</div></div>

 Error: [ngRepeat:dupes]这个出错提示具体到题主的情况,意思是指数组中有2个以上的相同数字。

ngRepeat不允许collection中存在两个相同Id的对象 For example: item in items is equivalent to item in items track by $id(item). This implies that the DOM elements will be associated by item identity in the array.

 对于数字对象来说,它的id就是它自身的值,因此,数组中是不允许存在两个相同的数字的。为了规避这个错误,需要定义自己的track by表达式。例如:item in items track by item.id或者item in items track by fnCustomId(item)。

嫌麻烦的话,直接拿循环的索引变量$index来用item in items track by $index

2.angular中filter的用法。

1. 在模板中使用filter
我们可以直接在{{}}中使用filter,跟在表达式后面用 | 分割,语法如下:
1{{ expression | filter }}
也可以多个filter连用,上一个filter的输出将作为下一个filter的输入(怪不得这货长的跟管道一个样。。)
1{{ expression | filter1 | filter2 | ... }}
filter可以接收参数,参数用 : 进行分割,如下:
1{{ expression | filter:argument1:argument2:... }}
2. 在controller和service中使用filter
我们的js代码中也可以使用过滤器,方式就是我们熟悉的依赖注入,例如我要在controller中使用currency过滤器,只需将它注入到该controller中即可,代码如下:
1
2
3
app.controller('testC',function($scope,currencyFilter){
$scope.num = currencyFilter(123534);
}
或者直接输注入$filter久可以调用所有的过滤器
1
2
3
4
app.controller('testC',function($scope,$filter){
$scope.num = $filter('currency')(123534);
$scope.date = $filter('date')(new Date());
}
3.自定义过滤器

传入参数的自定义过滤器。


4. 今天的收获:

 以上。



返回列表 返回列表
评论

    分享到