Angularjs:ngRepeat和directive

Angularjs:ngRepeat和directive,angularjs,directive,Angularjs,Directive,我正在尝试制作一些可重用的倒计时小部件。可以很好地处理静态内容,但是当我尝试动态添加它们时,我的指令不理解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&

我正在尝试制作一些可重用的倒计时小部件。可以很好地处理静态内容,但是当我尝试动态添加它们时,我的指令不理解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>


感谢您的回复。

问题在于插值不是通过调用时间链接函数来运行的。因此,
{{cdn}}
的值不可用。有两种处理方法:

  • 您可以直接在链接功能中使用
    cdn
    ,因为它在范围中可用。但这将使指令依赖于范围中是否存在
    cdn
  • 获取使用插值的属性值的推荐方法是使用$observe。选中此项:

  • 不是答案,而是观察:范围应该是$scopeHmm,在文档中是链接函数的范围,这就是你所说的范围!按照惯例,内置函数和变量以$开头。事实上,将其称为scope而不是$scope更有意义。当您使用$scope时,就是当您使用依赖项注入时,Angular将根据变量名查找依赖项。
    ...
    link: function(scope, elm, attrs) {
      scope.days = '1';
      ...
    }
    ...