5

再利用可能なカウントダウンウィジェットを作成しようとしています。静的コンテンツではうまく機能しますが、その場でそれらを追加しようとすると、ディレクティブはngRepeat内の変数を理解しません。

マークアップ:

<div ng-repeat="cdn in countdowns" class="countdown" countdown-end="{{cdn}}">
  <p ng-hide="over">{{days}} jours {{hours}} heures {{minutes}} min {{seconds}} sec</p>
  <p ng-show="over">Done</p>
</div>

指令:

...
link: function(scope, elm, attrs) {
  scope.days = '1';
  ...
}
...

http://jsfiddle.net/hFGb7/14/

返信ありがとうございます。

4

1 に答える 1

5

問題は、リンク関数が呼び出されたときに補間が実行されないことです。したがって、の値{{cdn}}は使用できません。これを処理する方法はいくつかあります。

  1. cdnスコープで利用できるので、リンク機能で直接使用できます。cdnただし、これにより、ディレクティブはスコープ内の存在に依存するようになります。
  2. 補間を使用する属性の値を取得するための推奨される方法は、$observeを使用することです。これを確認してください:http://jsfiddle.net/hFGb7/28/
于 2012-11-23T11:38:07.217 に答える