angularjs过滤器不与$ http工作
问题描述:
我是angular.js的新手,但我无法弄清楚如何使|过滤器:xxx使用通过$ http服务生成的数据。
在下面的代码中,我简直无法让过滤器处理$ http生成的数据 - 当我在输入框内输入时,它什么都不做。但是,如果我在$ scope函数内部硬编码一些数据,过滤器会工作。
<div ng-controller="UserCtrl">
<input ng-model="search">
<ul>
<li ng-repeat="user in users| filter:search">
{{user.id}}
{{user.firstname}}
{{user.lastname}}
</li>
</ul>
</div>
<script>
function UserCtrl($scope, $http) {
$http.get('actions.php?action=get_user_list').success(function(data) {
$scope.users = data;
});
}
</script>
答
这可以为您服务:
<li ng-repeat="user in users| filter:{firstname : search}">
答
嘿下面的代码
测试<div ng-controller="UserCtrl>
<input ng-model="search">
<ul>
<li ng-repeat="user in users | filter:search.$">
{{user.id}}
{{usesr.firstname}}
{{user.lastname}}
</ul>
</div>
<script>
var app = angular.module('Your Module Name' ,[]);
app.controller('UserCtrl', function($scope, $http){
$http.get('actions.php?action=get_user_list').then(function(response){
$scope.users = response.data;
});
});
</script>
想通了它是什么 - 我的PHP脚本生成对象的JSON数组用钥匙(即01 => array(...)。Angular不能正确地过滤它,解决方案是生成一个没有关键字的对象列表,例如:$ output = array(array(data),array(data))等 – pvukovic 2013-05-06 00:40:37
也许这会对你有用:'array_values 'strip keys,所以数组变成简单的基于0的数组。 – alx 2013-05-11 12:02:34
是的,角度过滤器只适用于数组。 – Jess 2013-08-09 16:43:42