我正在尝试设置一条指令以应用jquery插件dotdotdot。我的问题是我希望它应用于带有分页集的ng-repeat中的项目列表。每次单击下一个/上一个页面时,列表都会更改。我甚至连初始页面都无法使用下面的代码。

到目前为止,这是我的代码:

videoApp.directive('myEllip', function() {
var linkFn = function(scope, element, attrs) {
  var synopsis = angular.element(element.children());
    $(synopsis).dotdotdot({'watch':true});
};
return {
    restrict: 'A',
    link: linkFn
};
});


 <ul class="videos_all" my-ellip >
 <li ng-repeat="video in videos | filter:search | startFrom:currentPage*pageSize | limitTo:pageSize " class="videoSynopsis" >
      <p><a href ng-click="showVideo('{{video.VideoID}}')" >
      {{video.Title}}</a>
      <br><small class="muted">{{video.Description}}</small></p>
</li>
</ul>


我正在


  dotdotdot:找不到“”的元素。


在控制台中。

任何帮助表示赞赏。谢谢!

最佳答案

我遇到了类似的问题,但是我为列表中的每个元素指定了一条指令,当我调用dotdotdot()时,它将阻止angular将我的{{title}}绑定到该值,所以我改用ng-bind="title"即可。
我想在您的情况下,它可能看起来像:

videoApp.directive('myEllip', function() {
    var linkFn = function(scope, element, attrs) {
        element.dotdotdot({'watch':true});
    };
    return {
        restrict: 'A',
        link: linkFn
    };
});


和html

<ul class="videos_all">
  <li my-ellip ng-repeat="video in videos | filter:search | startFrom:currentPage*pageSize | limitTo:pageSize " class="videoSynopsis" >
    <p>
      <a href ng-click="showVideo('{{video.VideoID}}')" ng-bind="video.Title"></a>
      <br/>
      <small class="muted" ng-bind="video.Description"></small>
    </p>
  </li>
</ul>


我不确定dotdotdot如何用于子元素,因此您可能还需要在这些asmall上使用一些CSS才能使其工作(我假设您已经拥有)。

07-28 05:33