2016-08-12 2 views
2

제품 array.it는 이름, 가격, 수량으로 구성됩니다. 나는 limitTo를 사용하고 있습니다. 이름 길이가 20에 도달하면 제품에 마우스를 올리면 어떻게 풀 타임을 표시합니까?호버에 성명 표시 limitTo 콘텐츠 angularjs 사용?

<p class="hover">{{ item.name| limitTo: 20 }}{{item.name.length > 20 ? '...' : ''}}<p/> 

답변

3

당신은

angular.module('app', []) 
 
.controller('myController', function($scope) { 
 
$scope.myText = "some very very very very very long text"; 
 
}) 
 
.directive('hoverText', function() { 
 
    return { 
 
     restrict: 'A', 
 
     scope: { 
 
      hoverText: '=', 
 
      maxChars: '=' 
 
     }, 
 
     link: function (scope, element) { 
 
      element.text(scope.hoverText.substr(0, scope.maxChars) + '...') 
 
      element.on('mouseenter', function() { 
 
       element.text(scope.hoverText); 
 
      }); 
 
      element.on('mouseleave', function() { 
 
       element.text(scope.hoverText.substr(0, scope.maxChars) + '...'); 
 
      }); 
 
     } 
 
    }; 
 
})
p
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="myController"> 
 
    <p hover-text="myText" max-chars="20"> 
 
    </p> 
 
</div>

+0

이것은 도구 팁입니다. tool tip.expand를 같은 위치에 놓고 싶지는 않습니다. – SrinivasAppQube

+0

좋아요 대체 지시문을 추가했습니다. 지시문 메서드를 사용하는 것이 좋습니다. 코드에서 재사용 할 수 있기 때문에 + 귀하의 제품에 루프가 있고 mouseenter에 플래그를 사용하고 떠나면 모든 트리거가 발생합니다! 당신이 그것을 제품 아이템 자체의 속성으로 만들지 않는 한 – WalksAway

+0

더 나은 것은'ui-bootstrap'의'uib-popover'를 사용하는 것입니다 .. –

2

당신이 뭔가를 할 수

<p class="hover" title="{{item.name}}"> 

title 속성을 사용하거나 경우에 대한 각 무엇을 사용하지 툴팁 아래처럼.

마크 업

<p class="hover" ng-mouseenter="limit=item.name.length" ng-mouseleave="limit=20"> 
    {{ item.name| limitTo: limit }}<span ng-bind="limit > 20 ? '...' : ''"></span> 
<p/> 

컨트롤러 내가 CSS 옵션을보고 당신을 제안했지만

$scope.limit = 20; 

Demo Plunkr


어디를 text-overflow: elipsisoverflow: hidden을 사용하여 동일하게 달성 할 수 있습니다. 당신은 동일한 것을 구현하기 위해 this link을 참조 할 수 있습니다.

+0

여러 단락이있는 경우에는 모두 확장됩니다 ... – WalksAway

+0

@WalksAway 그 이유는 당신이 대답을 업데이트 한 이유입니다 ... 나는 내 대답에서 같은 것을 반복하고 싶지는 않지만 당신의 방법은 끝내주는 것처럼 보입니다. 나에게. :) –

+0

좋은 대답이지만 지시문은 여기에서 더 잘 작동 할 것입니다. – WalksAway

관련 문제