在我的 HTML 模板中,我有以下内容:
<a ng-href="{{ person | personLink }}">
person
在控制器中设置为:
$scope.person = Person.get({examId: $routeParams.personId});
并且Person
是一种资源:
app.factory('Person', [
'$resource', function($resource) {
return $resource('/api/people/:personId/', {
personId: '@personId'});
}
]);
问题是过滤器在承诺准备好之前被调用并导致读取未定义的值。处理这个问题的正确方法是什么?
现在我对属性使用 if 检查,但这似乎并不理想:
renderFilters.filter('personLink', function() {
return function(person) {
if(person.ages) {
return '#/ages/' + person.ages;
}else{
return '#';
}
};
});