4

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: "" の要素が見つかりません。

コンソールで。

どんな助けでも大歓迎です。ありがとう!

4

3 に答える 3

0

テンプレート

<div dma-dotdotdot>{{movie.title}}</div>

指令

(function () {
    'use strict';

    angular.module('dma.common').directive('dmaDotDotDot', [
        function dmaDotDotDot() {
            return {
                restrict: 'A',
                link: function (scope, element, attrs) {
                    scope.$evalAsync(function () {
                        element.dotdotdot({
                            wrap: 'letter'
                        });
                    });
                }
            };
        }
    ]);
}());

ng-bind をテストしましたが、適切に機能していないようです。ng-bind はコンテンツを隠し、次に dotdotdot() を起動し、コンテンツをコンパイルします (これは機能しません)。

これは機能するはずですが、scope.$watch よりもはるかに優れたソリューションです。また、リストに記載されていないソリューションよりも一貫して実行されると思います$evalAsync()

いつ起動するかについての詳細は、 https: //docs.angularjs.org/api/ng/type/ $rootScope.Scope#$evalAsync を参照してください。

于 2015-06-19T01:04:02.817 に答える
-1

構文エラー。

<ul class="videos_all" my-ellip > に変更 <ul class="videos_all" myEllip >

編集:

<input ng-model="test" type="text" value="23"/>
<div  ng-repeat="i in [1,2,3]">
    <div style="width:100px; height:100px" dotdotdot ng-bind="test"></div>
</div>

app.directive('dotdotdot', function() {
 return function(scope, element, attrs) {
        $(element).dotdotdot({'watch':true});
    }
})
于 2013-10-28T19:04:14.103 に答える