【发布时间】:2015-05-06 20:49:35
【问题描述】:
我有一段我经常使用的 sn-p 代码,它调用 API 以根据发送给它的 ID 返回用户名。
GetUserNames.get({users: user}, function (data) {
$scope.userName = data[0];
})
我想做的就是把它变成一个过滤器,我可以在其中做类似的事情
{{userID | returnUserName}}
这样我就可以重复使用并保持我的控制器和视图干净。我写了这样的东西:
angular.module('app.filters').filter('returnUserName', function(GetUserNames) {
return function(input) {
GetUserNames.get({ users: input }, function (data) {
console.log(data[0])
return data[0]
});
}
});
虽然console.log 返回正确的值,但我在页面上看不到它。我猜这是一个时间问题。我可以做些什么来完成这项工作,以便在页面上填充该值?
【问题讨论】:
-
有趣的问题,但我认为您需要的是指令,而不是过滤器。 stackoverflow.com/questions/19864318/…
-
这不是过滤器的用途。它们本质上用于格式化
-
这是工厂代码,不是过滤器。将缓存设置为 true,并且在第一次调用后立即可用,而无需为需要它的每个控制器发出请求。另外,您在回调中返回到哪里?无处。你的外部函数什么都不返回
标签: angularjs filter angularjs-filter