在项目过程中遇到了filter报错的情况,原因是从PHP后台传来的data是object类型的,
$http.get('http://115.159.184.193/tiaozhan/lpDo.php?model_id='+$rootScope.modelId).success(function(data){
$rootScope.lessons = data.lesson;
$rootScope.points = data.point;
filter的代码:
<ion-item class="item-accordion}"
ng-repeat="point in points|filter:{ point_lessonId:lesson.id }"
ng-show="isGroupShown(lesson)">
错误信息:
ionic.bundle.js:25642 Error: [filter:notarray] Expected array but received:
解决方法:
将对象类型转成array类型
首先,当然是先定义一个array类型的数据 results
var results = {};
然后使用forEach循环取出data中的数据
angular.forEach(data.point,function(val,key){
//console.log(val);//打印值
//console.log(key);//打印参数名
this.push(val);//val传入results数组中
},results );
链接官网
API中forEach的用法