0

私の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 '#';
    }
  };
});
4

2 に答える 2

0

「正しい」方法はng-if、データの準備が整う前に要素が表示されないようにすることです。JS ではなく、HTML で。基本的にはそれだけです。これは、希望する実装に応じて微調整できます。特別なものが必要な場合は、目的を正確にお知らせください。

于 2014-07-15T02:28:56.807 に答える